事務(wù)的四大特性
并發(fā)引發(fā)的數(shù)據(jù)庫(kù)問(wèn)題
No.1 數(shù)據(jù)丟失更新(update lost)
通過(guò)事務(wù)隔離級(jí)別解決事務(wù)并發(fā)
No.1 未提交讀READ-UNCOMMITTED
Session 1:
Session2:
通過(guò)鎖解決并發(fā)事務(wù)數(shù)據(jù)一致性問(wèn)題
No1. 事務(wù)鎖策略
對(duì)MyISAM 表的讀操作,不會(huì)阻塞其他用戶(hù)對(duì)同一表的讀請(qǐng)求,但會(huì)阻塞對(duì)同一表的寫(xiě)請(qǐng)求;
對(duì)MyISAM 表的寫(xiě)操作,則會(huì)阻塞其他用戶(hù)對(duì)同一表的讀和寫(xiě)操作;
查詢(xún)表爭(zhēng)用情況
共享鎖(S):SELECT * FROM table_name WHERE ... LOCK IN SHARE MODE
排他鎖(X) :SELECT * FROM table_name WHERE ... FOR UPDATE
mysql> show status like innodb_row_lock%;
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| Innodb_row_lock_current_waits | 0 |
| Innodb_row_lock_time | 24021 |
| Innodb_row_lock_time_avg | 6005 |
| Innodb_row_lock_time_max | 6007 |
| Innodb_row_lock_waits | 4 |
+-------------------------------+-------+
盡可能讓所有數(shù)據(jù)檢索都能通過(guò)索引來(lái)完成,避免無(wú)索引行鎖升級(jí)為表鎖。
合理設(shè)計(jì)索引,盡量縮小鎖的范圍
盡可能減少索引條件,及索引范圍,避免間隙鎖
盡量控制事務(wù)大小,減少鎖定資源量和時(shí)間長(zhǎng)度
盡可使用低級(jí)別事務(wù)隔離(但是需要業(yè)務(wù)層面滿(mǎn)足需求)
END
更多精彩干貨分享
點(diǎn)擊下方名片關(guān)注
IT那活兒
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129730.html
摘要:串行最高的隔離級(jí)別,完全服從的隔離級(jí)別。但是這將嚴(yán)重影響程序的性能。此外,垂直分區(qū)可以簡(jiǎn)化表的結(jié)構(gòu),易于維護(hù)。 我自己總結(jié)的Java學(xué)習(xí)的一些知識(shí)點(diǎn)以及面試問(wèn)題,目前已經(jīng)開(kāi)源,會(huì)一直完善下去,歡迎建議和指導(dǎo)歡迎Star: https://github.com/Snailclimb/Java_Guide 書(shū)籍推薦 《高性能MySQL : 第3版》 文字教程推薦 MySQL 教程(菜鳥(niǎo)教程...
摘要:串行最高的隔離級(jí)別,完全服從的隔離級(jí)別。但是這將嚴(yán)重影響程序的性能。此外,垂直分區(qū)可以簡(jiǎn)化表的結(jié)構(gòu),易于維護(hù)。 我自己總結(jié)的Java學(xué)習(xí)的一些知識(shí)點(diǎn)以及面試問(wèn)題,目前已經(jīng)開(kāi)源,會(huì)一直完善下去,歡迎建議和指導(dǎo)歡迎Star: https://github.com/Snailclimb/Java_Guide 書(shū)籍推薦 《高性能MySQL : 第3版》 文字教程推薦 MySQL 教程(菜鳥(niǎo)教程...
摘要:但是這將嚴(yán)重影響程序的性能。垂直分區(qū)的優(yōu)點(diǎn)在于可以使得行數(shù)據(jù)變小,在查詢(xún)時(shí)減少讀取的數(shù),減少次數(shù)。此外,垂直分區(qū)可以簡(jiǎn)化表的結(jié)構(gòu),易于維護(hù)。垂直分區(qū)的缺點(diǎn)在于主鍵會(huì)出現(xiàn)冗余,需要管理冗余列,并會(huì)引起操作,可以通過(guò)在應(yīng)用層進(jìn)行來(lái)解決。 Java面試通關(guān)手冊(cè)(Java學(xué)習(xí)指南,歡迎Star,會(huì)一直完善下去,歡迎建議和指導(dǎo)):https://github.com/Snailclimb/Jav...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20