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

歡迎訪問 生活随笔!

生活随笔

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

windows

什么是意向锁?它和意向书有什么区别?

發布時間:2023/12/29 windows 35 coder
生活随笔 收集整理的這篇文章主要介紹了 什么是意向锁?它和意向书有什么区别? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近受廢話文學的影響,所以有了今天的這個標題,希望大家能喜歡。大家不喜歡也沒關系,反正我喜歡。

魯迅先生曾經說過“我家門前有兩棵樹,一棵是棗樹,另一棵還是棗樹。”,由此可見,這老爺子算是把廢話文學給玩明白了。

希望大家也能,聽君一席話,如聽一席話吧。

聊正題

聊完閑篇,咱們說回正題:什么是意向鎖?為什么需要意向鎖?

PS:這里沒意向書什么事啊,標題中有,純粹是為了好玩。他們不能說沒有什么關系,那是一點關系都沒有。

定義

意向鎖(Intention Locks)是 MySQL InnoDB 引擎中的一種鎖機制(表級鎖),用于協調事務間的加鎖操作,以避免沖突和死鎖的發生。

為什么要有意向鎖?

例如,事務 A 加鎖了 Users 表中的一行數據(行鎖),而事務 B 要對整個 Users 表進行加鎖(表鎖),那么這個時候,如果沒有意向鎖,那事務 B 就會加鎖成功了。而事務 B 如果加鎖成功的話,那么它是可以對表中的任意數據行進行操作的,包括事務 A 加鎖的那行數據,所以,這個時候就發生了鎖沖突。

為了避免這個問題,所以 MySQL 引入了意向鎖,在事務 A 添加行鎖的時候,先添加意向鎖,而事務 B 在添加表鎖的時候,先判斷一下意向鎖,如果有意向鎖了,它就不能加表鎖了,這樣避免了鎖沖突,提升了加鎖判斷的效率。

想想一下,如果沒有意向鎖的話,那么事務 B 在加表鎖的時候,只能一行行的判斷有沒有行鎖,而這種判斷的效率是非常低的,尤其數據量比較大時。

意向鎖分類

意向鎖分為以下兩種類型:

  1. 意向共享鎖(Intention Shared lock,IS):表示在某個資源上設置共享鎖。也就是讀鎖,用于讀取數據的操作,允許多個事務同時持有(共享鎖),不互斥。
  2. 意向排他鎖(Intention Exclusive lock,IX):表示在某個資源上設置排他鎖。也就是寫鎖,用于修改和更新數據操作,并且同一時間只能由一個事務持有,不能和其他事務共同持有,具有互斥性和排他性。

小結

意向鎖并不能直接由開發者創建和使用,它是存在于 MySQL 中,由 MySQL 自行維護的一種協調事務加鎖的機制。它在事務創建行鎖和表鎖時創建,在事務提交或回滾之后自動釋放。

本文已收錄到我的面試小站 www.javacn.site,其中包含的內容有:Redis、JVM、并發、并發、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、設計模式、消息隊列等模塊。

總結

以上是生活随笔為你收集整理的什么是意向锁?它和意向书有什么区别?的全部內容,希望文章能夠幫你解決所遇到的問題。

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