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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql ix is_关于MySQL中的共享锁(S)、排它锁(X)、意向共享锁(IS)、意向排它锁(IX)...

發(fā)布時間:2023/12/18 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql ix is_关于MySQL中的共享锁(S)、排它锁(X)、意向共享锁(IS)、意向排它锁(IX)... 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.S鎖和X鎖:S鎖和X鎖都屬于行數(shù)

二.意向鎖:表鎖,相互兼容,表明“某個事務(wù)持有了鎖、或準(zhǔn)備去持有鎖”

1、意向鎖的存在是為了協(xié)調(diào)行鎖和表鎖的關(guān)系,支持多粒度(表鎖與行鎖)的鎖并存。

2、

1)意向共享鎖(IS鎖):事務(wù)在請求S鎖前,要先獲得IS鎖

2)意向排他鎖(IX鎖):事務(wù)在請求X鎖前,要先獲得IX鎖

3、例子:事務(wù)A修改user表的記錄r,會給記錄r上一把行級的排他鎖(X),同時會給user表上一把意向排他鎖(IX),這時事務(wù)B要給user表上一個表級的排他鎖就會被阻塞。意向鎖通過這種方式實現(xiàn)了行鎖和表鎖共存且滿足事務(wù)隔離性的要求。

q1:為什么意向鎖是表級鎖呢?

當(dāng)我們需要加一個排他鎖時,需要根據(jù)意向鎖去判斷表中有沒有數(shù)據(jù)行被鎖定(行鎖);

(1)如果意向鎖是行鎖,則需要遍歷每一行數(shù)據(jù)去確認(rèn);

(2)如果意向鎖是表鎖,則只需要判斷一次即可知道有沒數(shù)據(jù)行被鎖定,提升性能。

q2:意向鎖怎么支持表鎖和行鎖并存?

(1)首先明確并存的概念是指數(shù)據(jù)庫同時支持表、行鎖,而不是任何情況都支持一個表中同時有一個事務(wù)A持有行鎖、又有一個事務(wù)B持有表鎖,因為表一旦被上了一個表級的寫鎖,肯定不能再上一個行級的鎖。

(2)如果事務(wù)A對某一行上鎖,其他事務(wù)就不可能修改這一行。這與“事務(wù)B鎖住整個表就能修改表中的任意一行”形成了沖突。所以,沒有意向鎖的時候,讓行鎖與表鎖共存,就會帶來很多問題。于是有了意向鎖的出現(xiàn),如q1的答案中,數(shù)據(jù)庫不需要在檢查每一行數(shù)據(jù)是否有鎖,而是直接判斷一次意向鎖是否存在即可,能提升很多性能。

三.下圖表示意向鎖和共享鎖、排他鎖的兼容關(guān)系。

1.當(dāng)事務(wù)A對某個數(shù)據(jù)范圍(行或表)上了“某鎖”后,另一個事務(wù)B是否能在這個數(shù)據(jù)范圍上“某鎖”。

2.意向鎖相互兼容,因為IX、IS只是表明申請更低層次級別元素(比如 page、記錄)的X、S操作。

3.表級S鎖和X、IX鎖不兼容:因為上了表級S鎖后,不允許其他事務(wù)再加X鎖。

4.表級X鎖和 IS、IX、S、X不兼容:因為上了表級X鎖后,會修改數(shù)據(jù),所以即使是行級排他鎖,因為表級鎖定的行肯定包括行級鎖定的行,所以表級X和IX、X都不兼容。

注意:上了行級X鎖后,行級X鎖不會因為有別的事務(wù)上了IX而堵塞,一個mysql是允許多個行級X鎖同時存在的,只要他們不是針對相同的數(shù)據(jù)行。

————————————————版權(quán)聲明:本文為CSDN博主「本兮言」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。原文鏈接:https://blog.csdn.net/ligupeng7929/article/details/89216881

總結(jié)

以上是生活随笔為你收集整理的mysql ix is_关于MySQL中的共享锁(S)、排它锁(X)、意向共享锁(IS)、意向排它锁(IX)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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