MySQL的鎖機制

通常有
-
行鎖
行級鎖是Mysql中鎖定粒度最細的一種鎖,表示只針對當前操作的行進行加鎖,行級鎖能大大減少資料庫操作的沖突,其加鎖粒度最小,但加鎖的開銷也最大,有可能會出現死鎖的情況, -
表鎖
表級鎖是mysql鎖中粒度最大的一種鎖,表示當前的操作對整張表加鎖,資源開銷比行鎖少,不會出現死鎖的情況,但是發生鎖沖突的概率很大, -
頁鎖
頁級鎖是MySQL中鎖定粒度介于行級鎖和表級鎖中間的一種鎖,
常見的執行引擎對這兩種鎖的支持

實作方式
InnoDB行鎖是通過給索引上的索引項加鎖 來實作的,這一點MySQL與Oracle不同,后者是通過在資料塊中對相應資料行加鎖來實作的,
InnoDB這種行鎖實作特點意味著:只有通過索引條件檢索資料,InnoDB才使用行級鎖,否則,InnoDB將使用表鎖!
根據使用方式,行鎖和表鎖都可分為
-
共享鎖(讀鎖):允許一個事務去讀一行,阻止其他事務獲得相同資料集的排他鎖,
-
排它鎖(寫鎖):允許獲得排他鎖的事務更新資料,阻止其他事務取得相同資料集的共享讀鎖和排他寫鎖,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/107826.html
標籤:其他
上一篇:SQL批量新增資料
