成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

什么是排他鎖、共享鎖、意向鎖

數據庫 MySQL
在MySQL的InnoDB引擎中,支持多種鎖級別,其中包括行級鎖和表級鎖,而共享鎖,又被稱為讀鎖,是由讀取操作所創建的一種鎖。

共享鎖

共享鎖,又被稱為讀鎖,是由讀取操作所創建的一種鎖。在此期間,其他用戶可以同時讀取數據,但在數據上未釋放所有共享鎖之前,任何事務均無法對其進行修改(即獲取數據的排他鎖)。

一旦事務T對數據A加上共享鎖,其他事務只能對A再加共享鎖,而無法加排他鎖。獲得共享鎖的事務僅可讀取數據,不可修改數據。

SELECT ... LOCK IN SHARE MODE;

在查詢語句后增加LOCK IN SHARE MODE,MySQL會對查詢結果中的每一行都加上共享鎖。當沒有其他線程對查詢結果集中的任何一行使用排他鎖時,可以成功申請共享鎖;否則會被阻塞。其他線程也可以讀取已被共享鎖保護的表,且這些線程讀取的是同一版本的數據。

排他鎖

排他鎖又稱為寫鎖。如果事務T對數據A加上排他鎖,則其他事務無法對A加任何類型的鎖。獲得排他鎖的事務既能讀取數據,又能修改數據。

SELECT ... FOR UPDATE;

在查詢語句后增加FOR UPDATE,MySQL會對查詢結果中的每一行記錄都加上排他鎖。只有在沒有其他線程對查詢結果集中的任何一行使用排他鎖時,才能成功申請排他鎖;否則會被阻塞。

意向鎖

在MySQL的InnoDB引擎中,支持多種鎖級別,其中包括行級鎖和表級鎖。當多個事務需要訪問同一共享資源時,如果每個事務都直接請求獲取鎖,可能會發生相互阻塞的情況,甚至可能導致死鎖的產生。

舉個例子:

假設事務A對表Table1中的某一行加上了行級鎖,這使得該行記錄只能被讀取而不能被修改。同時,事務B試圖對Table1增加表級鎖。如果事務B成功獲取了表級鎖,那么它就可以修改表中的任意一行記錄,這就導致了沖突。

為了解決這個問題,需要讓事務B在嘗試對Table1增加表級鎖之前,先判斷是否有其他事務已經對該表的某行加了行級鎖。但是,事務B顯然不能遍歷整個表的數據逐條進行判斷是否有加鎖。

因此,MySQL引入了意向鎖機制。意向鎖是數據庫管理系統中用于實現鎖協議的一種機制,旨在處理不同鎖粒度(如行鎖和表鎖)之間的并發性問題。這種機制幫助解決了不同鎖粒度之間的并發問題,而對于相同鎖粒度之間的并發問題,可以通過行級互斥鎖來解決。

注意:

  • 意向鎖并非直接用于鎖定資源,而是用于通知其他事務,以避免它們在資源上設置不兼容的鎖。
  • 意向鎖并非由用戶直接請求,而是由MySQL管理的。

當一個事務請求獲取行級鎖或表級鎖時,MySQL會自動獲取相應表的意向鎖。這樣,其他事務在請求獲取表鎖時,就可以首先基于這個意向鎖來發現是否已經有其他事務加過鎖,并根據該鎖的類型(意向共享鎖/意向排他鎖)來判斷自己是否可以獲取鎖。通過這種方式,可以在不阻塞其他事務的情況下,為當前事務鎖定資源。意向鎖有兩種類型:意向共享鎖和意向排他鎖。

  • 意向共享鎖:表示事務打算在資源上設置共享鎖(讀鎖)。通常用于表明事務計劃讀取資源,并希望在讀取時不會有其他事務設置排他鎖。
  • 意向排他鎖:表示事務打算在資源上設置排他鎖(寫鎖)。這表示事務計劃修改資源,并不希望有其他事務同時設置共享或排他鎖。

意向鎖是一種表級鎖,在觸發意向鎖的事務提交或回滾后會被釋放。

責任編輯:趙寧寧 來源: 碼上遇見你
相關推薦

2023-07-03 08:15:46

MySQLInnoDB

2022-11-28 14:27:17

插入意向鎖age

2023-12-28 17:33:25

意向鎖MySQL開發者

2025-06-04 02:55:00

MySQL意向鎖記錄鎖

2022-04-21 10:39:29

InnoDB意向鎖SQL

2024-10-30 10:38:08

2019-01-04 11:18:35

獨享鎖共享鎖非公平鎖

2024-03-04 07:37:40

MySQL記錄鎖

2018-07-31 10:10:06

MySQLInnoDB死鎖

2022-07-20 08:06:57

MySQL表鎖Innodb

2017-08-30 18:15:54

MySql

2019-11-28 16:00:06

重入鎖讀寫鎖樂觀鎖

2024-05-15 09:41:22

樂觀鎖編程

2022-02-21 15:01:45

MySQL共享鎖獨占鎖

2022-12-27 17:40:57

意向鎖MySQLInnoDB

2024-01-29 01:08:01

悲觀鎖遞歸鎖讀寫鎖

2021-06-11 16:59:41

MySQLRepeatableRead

2024-06-06 09:03:37

MySQL數據庫共享鎖

2024-01-29 07:43:42

Java獨占鎖共享鎖

2025-02-10 09:58:48

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美一区二区三区另类精品 | 美女激情av | 一区二区三区四区视频 | 91欧美激情一区二区三区成人 | 一区二区精品 | 二区中文 | 九九免费| 免费视频一区二区 | 玖玖视频网| 日本一区二区三区四区 | 一区二区三区国产好的精 | 国产91在线播放精品91 | 欧美日本高清 | 国产精品国产成人国产三级 | 欧产日产国产精品国产 | 精品综合久久久 | 亚洲二区在线观看 | 91视频免费观看 | 亚洲成人综合社区 | 国内精品一区二区 | 久久久精品国产 | 久久精品毛片 | 亚洲国产精品99久久久久久久久 | 亚洲精品国产电影 | 免费黄色的视频 | 久久1区 | 日韩一二区| 日韩精品在线看 | 中文字幕欧美一区 | 2021狠狠天天天 | 成人性视频免费网站 | www.久久久久久久久 | 亚洲一区二区av | 在线免费观看成人 | 午夜无码国产理论在线 | 亚洲一本 | 一级日韩 | 欧美日韩中 | 亚洲国产一区二区三区 | 国产一区二区在线播放 | 欧美 视频 |