- 儘量使用較低的隔離級別。
- 精心設計死鎖,並儘量使用索引訪問數據,使加鎖更精確,從而減少鎖衝突的機會。
- 選擇合理的事務大小,小事務發送鎖衝突的機率也小。
- 顯式加鎖時,儘量一次性請求足夠級別的鎖。比如要修改數據,最好直接申請排他鎖,而不是先申請共享鎖,修改時再申請排他鎖,因爲在此期間有可能被別的事務搶佔了排他鎖,導致死鎖。
- 不同的應用訪問同一組表時,應儘量約定以相同的順序訪問各表。對一個表而言,應儘量以固定的順序存取表中的行。這樣可以減少死鎖的機會。
- 儘量用相等的條件訪問數據,這樣可以避免next-key鎖對併發插入的影響。
- 不要申請超過實際需要的鎖級別;除非必要,查詢時不要顯示加鎖。
- 對於一些特定的事務,可以使用表鎖來提高處理速度和減少死鎖的機率。
如何減少MySQL鎖衝突和死鎖
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
ClickHouse內幕(1)數據存儲與過濾機制
原創
2024-06-07 23:54:51
MySQL 核心模塊揭祕 * 19 期 * 鎖模塊裏有什麼?什麼樣?
原創
2024-06-06 11:58:40
EMQX Enterprise 5.7 發佈:新增會話持久化、消息 Schema 驗證、規則引擎調試與追蹤功能
原創
2024-06-05 22:10:05
修復 MySQL 8.4 的 "mysql_native_password is not loaded" 插件未加載錯誤
vga
2024-06-04 14:30:04
告別內存OOM,解決MySQL內存增長問題
原創
2024-06-04 11:09:29
第 53 期:MySQL 創建了用戶卻無法登陸
原創
2024-06-04 02:43:21
第 53 期:MySQL 創建了用戶卻無法登陸
原創
2024-06-04 02:43:03
pfinder實現原理揭祕
原創
2024-06-04 02:39:24
pfinder實現原理揭祕
原創
2024-06-04 02:37:09
pfinder實現原理揭祕
原創
2024-06-04 02:34:44
MySQL 核心模塊揭祕 | 18 期 | 鎖在內存里長什麼樣*
原創
2024-05-31 12:13:56
一文講透 OceanBase 單機版:架構介紹、部署流程、性能測試、MySQL對比、資源配置等等
原創
2024-05-31 00:04:39
centos7按照MYSQL8(安裝包)
Rsky08
2024-05-29 22:15:17
MySQL 重啓之後無法寫入數據了?
原創
2024-05-29 00:01:11