資料庫優化專題—1、表的主鍵用數字還是UUID
資料庫優化專題—2、邏輯删除還是實體删除
資料庫優化專題—3、千萬記錄如何快速分頁
資料庫優化專題—4、讀多寫少和讀多寫多
資料庫優化專題—5、删改資料如何避免鎖表
資料庫優化專題—6、如何避免偷換交易中的商品資訊
資料庫優化專題—7、SQL語句優化
資料庫優化專題—8、Mysql參數優化
資料庫優化專題—9、索引優化
資料庫優化專題—10、存儲優化
資料庫優化專題—11、資料庫結構優化
目錄
-
- 什麼是鎖機制
-
- 共享鎖和排它鎖
- 共享鎖
- 排它鎖
- 如何減少并發操作的鎖沖突
- 總結
資料庫進行删改操作時,可能出現鎖表情況,那如何避免鎖表情況呢?這節給大家介紹下。
什麼是鎖機制
- InnoDB采用的是行級鎖,删改資料的時候,Mysql會鎖住記錄;
共享鎖和排它鎖
- 行級鎖分為共享鎖(S鎖)和排它鎖(X鎖);
- 共享鎖和排它鎖,都不允許其他事務執行寫操作,但是可以讀資料;
- 排它鎖不允許對資料再另外加鎖;
共享鎖
- 隻有serializable事務隔離級别,才會給資料讀取添加共享鎖;
- 添加了共享鎖,其他事務隻能讀取加鎖資料,而不能修改和删除;
排它鎖
- MySQL預設會給添加、修改和删除記錄,設定排它鎖;
- 排它鎖不允許對資料再添加其他鎖;
如何減少并發操作的鎖沖突
- 把複雜的SQL語句,拆分成多條簡單的SQL語句;
總結
- 優化SQL語句,拆分SQL,減少資料鎖表時間。