日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

MySql锁机制

發(fā)布時間:2023/12/31 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 MySql锁机制 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、鎖跟事務有關

mysql默認的事務隔離級別是:可重復讀(RR)

二、共享鎖(讀鎖/S鎖)

1. 多個事務的查詢語句,對同一數(shù)據(jù),可以共享一把鎖,都能訪問到最新數(shù)據(jù)

2. 如果只有一個事務獲取到了一個共享鎖,可以更新、刪除

3. 如果多個事務都獲取到了同一個共享鎖,多個事務都不可以更新、刪除

4. 使用場景:多個事務都可以獲取最新數(shù)據(jù)

三、排它鎖(寫鎖/X鎖)

1. 不能與其他鎖共存,只有一個事務能拿到鎖

2. 鎖釋放后,其他事務才能獲取

3. 使用場景:一個事務進行查詢、更新、刪除操作

四、自增鎖

1. 如果表中存在自增字段,MySql會自動維護一個自增鎖

2. 當事務插入一條數(shù)據(jù),自增+1,事務未提交時,查不到這條數(shù)據(jù),提交后才能查到

五、記錄鎖(行鎖)

1. 鎖住一行記錄

2. 阻止該行被其他事務操作(刪除、更新、插入同樣的ID)

六、間隙鎖(gap lock)

1. 概念

a. 索引記錄中有間隔,例如id字段上建了索引,表里有3條記錄,id分別為1,3,5

b. 兩條記錄之間的間隔(1,3],(3,5]

c. 第一條索引之前的范圍,即(-infinity,1]

d. 最后一條索引之后的范圍,即(5,infinity]

e. 這種間隔或者范圍之間的鎖,叫做間隙鎖,間隙是前開后閉原則

f. 間隙鎖的作用:間隙內(nèi)的數(shù)據(jù),即一定范圍內(nèi)的數(shù)據(jù),在鎖定情況下,不發(fā)生變化

2. 產(chǎn)生間隙鎖的條件

a. 使用普通索引鎖定

b. 使用多列唯一索引

c. 使用唯一索引鎖定多行記錄

3. 只有在事務隔離級別為RR時,才會產(chǎn)生

4. 唯一索引:鎖住多條記錄,或者不存在的記錄時,才會產(chǎn)生間隙鎖

5. 普通索引:鎖住單條、多條記錄,都會產(chǎn)生間隙鎖

6. 鎖住該條記錄相鄰的兩個鍵之間的空白區(qū)域,防止其他事務在這個范圍內(nèi)插入、修改、刪除

7. 防止出現(xiàn)幻讀,幻讀是因為新增或更新操作,范圍查詢會出現(xiàn)數(shù)據(jù)不一致的問題

8. 如果事務隔離級別是RC,間隙鎖將會失效

七、臨鍵鎖(next-key lock)

1. 記錄鎖和間隙鎖的組合,既包含索引記錄,又包含索引區(qū)間

2.記錄鎖、間隙鎖、臨鍵鎖都是排它鎖

參考:

https://www.jianshu.com/p/32904ee07e56

https://zhuanlan.zhihu.com/p/48127815

https://zhuanlan.zhihu.com/p/48207652

https://zhuanlan.zhihu.com/p/48269420

總結

以上是生活随笔為你收集整理的MySql锁机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。