Mysql事務與鎖詳解


 

 

 

 

臟讀:

 

不可重復讀:

 

 幻讀:

 

 

 鎖:

 

 

 

表級別的意向鎖為了提高效率,

我們能給一張表成功加上一個表鎖的前提是:沒有任何一個事務對這張表的某些行加了鎖。

如果沒有意向表鎖:

如果現在要給一個表加上表鎖。

如果這張表有一千萬行數據,需要全表掃描行,是否有事務鎖定了某行。

 

如果一張表不使用索引,那么加一個排他鎖會鎖定整張表。

會為每一行數據默認創建一個聚集索引,看起來好像鎖定了整張表

 

 

 

多我們使用唯一索引鎖定了一行數據的時候,此時使用主鍵索引獲取該行的鎖時,依然失敗。

 在innodb中因為二級索引底層存儲的依然是主鍵索引。

 

 

當我們使用范圍查詢的時候會加鄰鍵鎖 type=range

所命中的行的 左開右閉 和下一個 左開右閉區間

在innodb 推薦使用自增的id作為主鍵索引,在這種情況下 如果我們要去解決幻讀的問題,一定要鎖住下一個左開右閉區間      ?????

 

 

 

如果沒有命中索引掃描全表鎖住整張表

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM