Mysql事务和锁原理
生活随笔
收集整理的這篇文章主要介紹了
Mysql事务和锁原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、mysql事務:MySql開啟事務:begin。
1.并發事務產生的讀問題
?1)更新丟失:后提交事務會覆蓋先提交的事務。樂觀鎖可解決。
?2)臟讀:A讀到B未提交update數據。不符合一致性
?3)不可重復讀:A讀到B已提交update數據。不符合隔離性
?4)幻讀:A讀到B已提交insert數據。不符合隔離性
2.事務隔離級別
mysql默認:可重復讀。
?3.讀問題解決原理:MVCC:多版本并發控制。
? 3.1 版本鏈
? 3.2 ReadView:m_ids
? ?select readview m_ids[1,]
?二、鎖:commit和rollback會釋放鎖。
?1.讀鎖與寫鎖
? 讀鎖:共享鎖,S鎖。select ... lock in share mode。
? 寫鎖:排他鎖,X鎖。select ... for update,update和delete語句。
? select語句:不加鎖。
? insert:隱式鎖。
? 間隙鎖:可重復讀。
?2.行鎖與表鎖:InnoDB
?1.行鎖
? 1)主鍵和唯一索引:鎖一行記錄。和RC隔離級別一樣。
? 2)非唯一索引:鎖所有符合條件的記錄。
? 3)全表掃描:鎖住所有記錄。
?2.表鎖
?
轉載于:https://www.cnblogs.com/wenxiangchen/p/11336504.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Mysql事务和锁原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 并发编程之并发容器
- 下一篇: matlab如何读取未知行数,带头文件和