国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

mysql優(yōu)化 - mysql數(shù)據(jù)insert快還是update比較快

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

問題描述

問題解答

回答1:

你這個應(yīng)用場景很像是:

修改用戶余額前,因?yàn)榕滦薷某鰡栴},意外把用戶余額改為0什么的。而選擇先插入一條記錄到用戶賬務(wù)變動表,然后查出賬務(wù)變動表的數(shù)據(jù),來更新用戶余額字段。

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

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

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

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

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

不知道會不會導(dǎo)致數(shù)據(jù)丟失,但有個腦洞,在多線程并發(fā)的情況下,很有可能出現(xiàn)后來的數(shù)據(jù)覆蓋前面的數(shù)據(jù).即便是先插入一張表中,在多線程中也可能出現(xiàn)后來的先插入的情況吧.

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

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

相關(guān)文章:
主站蜘蛛池模板: 国产精品久久免费观看 | 日本aaa成人毛片 | 成人黄色免费网站 | 日本精品中文字幕有码 | 中文字幕在线观看一区二区 | 国产在线乱子伦一区二区 | 成人美女网 | 国产精品毛片久久久久久久 | 老湿菠萝蜜在线看 | 欧美日本一二三区 | 亚洲精品久久久久中文字幕一区 | 久久精品网站免费观看 | 久99频这里只精品23热 视频 | 五月色婷婷综合开心网4438 | 真人一级毛片国产 | 欧美亚洲视频一区 | 国产一区二区三区在线观看视频 | freesex寂寞老妇hd | 欧美一区二区三区精品影视 | 高清午夜看片a福利在线观看琪琪 | 久久99精品久久久久久久野外 | 草久免费视频 | 一区一精品 | 欧美日韩高清不卡一区二区三区 | 亚洲精品成人网久久久久久 | 欧美jizzhd精品欧美高清 | 精品国产自在在线在线观看 | 99国产精品热久久久久久夜夜嗨 | 久草免费在线色站 | 国产亚洲一区呦系列 | 国产成人精品午夜免费 | 亚洲欧美一区二区三区在线播放 | 男女很舒服爽视频免费 | 亚洲一一在线 | 99视频在线精品免费观看18 | 久草在线资源 | aaa级毛片| 亚洲一二区 | 中国胖女人一级毛片aaaaa | 亚洲精品一区二三区在线观看 | 亚洲性无码av在线 |