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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

一分钟理清Mysql的锁类型——《深究Mysql锁》

發布時間:2025/3/20 数据库 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一分钟理清Mysql的锁类型——《深究Mysql锁》 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

延伸閱讀

三分鐘了解Mysql的表級鎖

五分鐘了解Mysql的行級鎖

一分鐘深入Mysql的意向鎖

我們常用的存儲引擎就MyISAM和InnoDB。MyISAM存儲主要就簡單的表級別鎖,下面只說InnoDB的各種鎖類型。

InnoDB不僅支持行級別的鎖,也支持表級別的鎖。平常我們會聽到各種鎖,你是不是不僅迷茫它們怎么用的,還會迷茫它們 各自之間都是什么關系?

什么是樂觀鎖和悲觀鎖?

樂觀鎖和悲觀鎖是泛指,不是具體的鎖。

樂悲鎖:也叫樂觀并發控制,它總是樂觀的認為用戶在并發事務處理時不會影響彼此的數據。

多版本并發控制個人認為就是一種樂觀鎖,具體參考:《Mysql概要》 里的MVCC。所以樂觀鎖我們自己也可以很輕松的實現,主要是在有中加一個version字段作為版本號。

?悲鎖觀鎖:悲觀鎖會悲觀的認為每次去拿的數據都會被別人修改。所以每次在拿數據的時候都會上鎖,從而屏蔽可能違反數據完整性的操作。間隙鎖、臨鍵鎖都屬于悲觀鎖。

什是表鎖和行鎖?

?表鎖和行鎖也是泛指,不是具體的鎖。

表級鎖有:意向共享鎖、意向排他鎖、自增鎖等。InnoDB的行鎖都是實現在索引上的

行級鎖有:共享鎖、排他鎖、記錄鎖

什么是共享鎖(S鎖)和排他鎖(X鎖)?

InnoDB引擎實現了標準的行級別鎖,分別是共享鎖和排他鎖。

  • 拿共享鎖是為了讓當前事務去讀一行數據。
  • 拿排他鎖是為了讓當前事務去修改或刪除某一行數據。

一個事務拿到了當前數據行的共享鎖,另一個事務也能馬上拿到當前數據行的共享鎖。

一個事務拿到了當前數據行的排他鎖,則另一個事務不能立馬拿到當前數據行的排他鎖,因為它會被阻塞直到前一個事務釋放。

設置共享鎖:select * from user where id = 1?LOCK IN SHARE MODE;

設置排他鎖:select * from user where id = 1 FOR UPDATE;

InnoDB到底有幾種鎖?

(1) 共享/排它鎖(Shared and Exclusive Locks)

(2) 意向鎖(Intention Locks)

(3) 記錄鎖(Record Locks)

(4) 間隙鎖(Gap Locks)

(5) 臨鍵鎖(Next-key Locks)

(6) 插入意向鎖(Insert Intention Locks)

(7) 自增鎖(Auto-inc Locks)

臨鍵鎖是記錄鎖和間隙鎖的組合。

?

?

總結

以上是生活随笔為你收集整理的一分钟理清Mysql的锁类型——《深究Mysql锁》的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。