天天看點

資料庫優化專題---5、删改資料如何避免鎖表

資料庫優化專題—1、表的主鍵用數字還是UUID

資料庫優化專題—2、邏輯删除還是實體删除

資料庫優化專題—3、千萬記錄如何快速分頁

資料庫優化專題—4、讀多寫少和讀多寫多

資料庫優化專題—5、删改資料如何避免鎖表

資料庫優化專題—6、如何避免偷換交易中的商品資訊

資料庫優化專題—7、SQL語句優化

資料庫優化專題—8、Mysql參數優化

資料庫優化專題—9、索引優化

資料庫優化專題—10、存儲優化

資料庫優化專題—11、資料庫結構優化

目錄

    • 什麼是鎖機制
      • 共享鎖和排它鎖
      • 共享鎖
      • 排它鎖
      • 如何減少并發操作的鎖沖突
      • 總結

資料庫進行删改操作時,可能出現鎖表情況,那如何避免鎖表情況呢?這節給大家介紹下。

什麼是鎖機制

  • InnoDB采用的是行級鎖,删改資料的時候,Mysql會鎖住記錄;

共享鎖和排它鎖

  • 行級鎖分為共享鎖(S鎖)和排它鎖(X鎖);
  • 共享鎖和排它鎖,都不允許其他事務執行寫操作,但是可以讀資料;
  • 排它鎖不允許對資料再另外加鎖;

共享鎖

  • 隻有serializable事務隔離級别,才會給資料讀取添加共享鎖;
  • 添加了共享鎖,其他事務隻能讀取加鎖資料,而不能修改和删除;

排它鎖

  • MySQL預設會給添加、修改和删除記錄,設定排它鎖;
  • 排它鎖不允許對資料再添加其他鎖;

如何減少并發操作的鎖沖突

  • 把複雜的SQL語句,拆分成多條簡單的SQL語句;

總結

  • 優化SQL語句,拆分SQL,減少資料鎖表時間。

繼續閱讀