mysql空事务死锁_mysql空当锁导致死锁_mysql
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                mysql空事务死锁_mysql空当锁导致死锁_mysql
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                間隙鎖的分析:
表結構如下:
CREATE TABLE `test_gap` ( `ID` int(11) NOT NULL, -- 主鍵 `NAME` varchar(255) NOT NULL, -- 非唯一索引 PRIMARY KEY (`ID`), KEY `NAME` (`NAME`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
表中數據如下:
假設UPDATE NAME = 'c' 或者 DELETE NAME = 'c' ?會產生間隙鎖:
此時會去尋找非唯一索引的間隙鎖的上下區間,對應表里數據區間就是(a,e);
1:如果插入的數據,屬于(a,e)之間,既b,d,此時無法插入,因為b,d被間隙鎖鎖定
2:如果插入的數據,不屬于(a,e)之間,那么不受間隙鎖影響,自由插入
3:如果插入的數據,等于a或者e,此時需要再根據主鍵來判斷鎖定范圍:
1):如果是a,則取a的最大值ID為50,只要插入的數據ID<50則可以自由插入,ID>50既全部鎖定無法插入
2):如果是e,則取e的最小值ID為30,只要插入的數據ID>30則可以自由插入,ID<30既全部鎖定無法插入
那么開始模擬死鎖情景
執行順序:1,2,3,4
總結
以上是生活随笔為你收集整理的mysql空事务死锁_mysql空当锁导致死锁_mysql的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: Android Studio 的打包方式
- 下一篇: RASP相关的技术实现和产品介绍是怎样的
