原子性、一致性、隔離性、持久性mysql
事務隔離級別是用來解決事務併發的三大問題,即髒讀、幻讀、不可重複讀,其中幻讀與不可重複讀的區別在於,幻讀的重點是新增或刪除數據,不可重複讀的重點是修改算法
未提交讀sql |
未解決任何併發問題 |
已提交讀 | 解決髒讀問題 |
可重複讀 | 解決不可重複讀問題(InnoDB引擎下也可解決幻讀問題) |
串性化 | 解決全部問題 |
一種是加鎖(LBCC),也就是在讀取數據前,對記錄加鎖,另一種則是生成快照(MVCC)併發
意向鎖的做用,實現多中鎖粒度的並存以及提高加鎖的效率spa
鎖住下一區間的緣由是:避免出現幻讀的狀況blog
mysql的行鎖是經過鎖住【索引】項來實現,當沒有索引(默認的彙集索引)或者沒有命中索引的時候,會進行鎖表操做;如鎖住惟一索引,那麼主鍵索引也會被鎖住,這與索引的存儲結果有關。ps:後續補充
索引
表級鎖的爭用狀態:show status like 'table%'事務
行級鎖的爭用狀態:show status like 'innodb_row_lock%'ci