午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

mysql優化 - mysql數據insert快還是update比較快

瀏覽:167日期:2022-06-15 09:07:34

問題描述

問題解答

回答1:

你這個應用場景很像是:

修改用戶余額前,因為怕修改出問題,意外把用戶余額改為0什么的。而選擇先插入一條記錄到用戶賬務變動表,然后查出賬務變動表的數據,來更新用戶余額字段。

用一個成語形容這種行為:“慌不擇路”

你有沒有想過,既然你擔心用戶余額修改時出問題,那么你也同樣要擔心用戶帳變表插入出問題,那是不是還要另一個表來保證帳變表呢?那另一個表誰來保證呢?

其實,你應該知道正確的解決辦法。而不是用兩個不安全的辦法來湊成1個安全的辦法。你這樣做,非但沒有得到1個安全的辦法,反而得到了兩個不安全的辦法。

正確的辦法是,直接修改用戶余額表,并且加上排它鎖。例如:

// 開始事物BEGIN ;// 取出該用戶數據,并鎖住,防止其他線程(進程)讀取該條記錄SELECT * FROM users where id = $id FOR UPDATE ;// 處理業務...計算用戶新的余額// 更新用戶余額UPDATE users SET money = $new_money;// 獲取影響行數=1,則:{ // 提交事物(解鎖我們鎖定的記錄) COMMIT ;}else{ // 發現不對,撤銷我們在事物內做的所有操作 ROLLBACK ;}回答2:

不知道會不會導致數據丟失,但有個腦洞,在多線程并發的情況下,很有可能出現后來的數據覆蓋前面的數據.即便是先插入一張表中,在多線程中也可能出現后來的先插入的情況吧.

所以建議樓主開啟mysql的事務功能,具體的可以看下這個問題

https://segmentfault.com/q/10...

相關文章:
主站蜘蛛池模板: 91在线观看入口 | 国产视频91在线 | 亚洲视频免费 | av老鸭窝 | 国产精品亚洲成在人线 | 亚洲网站在线播放 | 亚洲久久在线 | 99精品毛片| 丰满少妇高潮一区二区 | 久久综合影院 | 亚洲精品综合在线 | 欧美三区视频 | 91精品又粗又猛又爽 | 欧美一级片在线视频 | 日韩黄大片 | 国产美女免费视频 | 成人一区三区 | 国产内射毛片 | 亚洲天堂成人在线观看 | 国产成人97精品免费看片 | 久久久午夜视频 | 免费在线播放av | 成人午夜在线 | 午夜视频成人 | 综合网婷婷| 亚洲色图av在线 | 久久久久久久久久久国产精品 | 男人视频网站 | 中文字幕精品一区久久久久 | 福利社午夜影院 | 欧美日韩亚洲综合 | 亚洲色图欧美 | 夜夜摸夜夜操 | 亚洲精品色图 | 国产精品视频大全 | 中文字幕第一区综合 | 九九精品网 | 超碰97在线播放 | 欧美色图p | 亚洲天堂色图 | 色播99|