亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

瀏覽:92日期: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...

相關文章:
主站蜘蛛池模板: 在线播放日本爽快片 | 国产草草 | 青青草国产精品久久久久 | 国产精品亚洲专区在线观看 | 亚洲欧美综合久久 | 久久久久久免费精品视频 | 国产精品小黄鸭一区二区三区 | 成人免费xxx色视频 成人免费短视频 | 欧美国产一区二区三区 | 欧美ol丝袜高跟秘书在线观看 | 大陆一级毛片免费高清 | 黄色一级网站 | 青青青视频自偷自拍视频1 青青青视频免费一区二区 青青青视频蜜桃一区二区 青青青爽国产在线视频 | 色综合久久加勒比高清88 | 日韩免费在线视频 | 91视频国产免费 | 日韩不卡手机视频在线观看 | 深夜释放自己黄瓜视频 | 有色影院 | 亚洲精品永久www嫩草 | 精品成人一区二区 | 韩国19禁主播裸免费福利 | 麻豆视频在线观看免费 | 日本一线一区二区三区免费视频 | 宅女深夜福利视频在线 | 成人国产三级精品 | 日韩在线成人 | 国产高清一 | 黄色小视频免费在线观看 | 极品丝袜高跟91极品系列 | 美国一级毛片免费看成人 | 国产私拍写真福利视频 | 国内精品露脸在线视频播放 | 国产在线观看a | 国产精品原创永久在线观看 | 日韩免费一级毛片 | 日韩欧美一中字暮 | 美国一级大黄大色毛片视频一 | 日产一区日产2区 | a级情欲片在线观看免费女中文 | 香蕉毛片 |