行鎖演算法
發布時間: 2025-08-23 00:05:05
MyISAM和InnoDB存儲引擎使用的鎖:
封鎖粒度小:
由於InnoDB存儲引擎支持的是行級別的鎖,因此意向鎖(因為意向鎖是表鎖)其實不會阻塞除全表掃以外的任何請求。故表級意向鎖與行級鎖的兼容性如下所示
參考
參考
行鎖的三種演算法:
這條語句阻止其他事務插入10和20之間的數字,無論這個數字是否存在。 間隙可以跨越0個,單個或多個索引值。
https://blog.csdn.net/u014316026/article/details/78726459
共享鎖:
排他鎖:
https://www.cnblogs.com/mysql-hang/articles/11027685.html
樂觀鎖:總是假設最好的情況,每次去拿數據的時候都認為別人不會修改(天真), 操作數據時不會上鎖 ,但是 更新時會判斷在此期間有沒有別的事務更新這個數據,若被更新過,則失敗重試 ;適用於讀多寫少的場景。
樂觀鎖的實現方式 有:
關閉自動提交後,我們需要手動開啟事務。
上述就實現了悲觀鎖,悲觀鎖就是悲觀主義者,它會認為我們在事務A中操作數據1的時候,一定會有事務B來修改數據1,所以,在第2步我們將數據查詢出來後直接加上排它鎖(X)鎖,防止別的事務來修改事務1,直到我們commit後,才釋放了排它鎖。
熱點內容