亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > MySQL > 正文

MySQL中InnoDB的間隙鎖問題

2024-07-24 13:07:36
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了MySQL中InnoDB的間隙鎖問題,提醒用戶注意死鎖情況,需要的朋友可以參考下

在為一個客戶排除死鎖問題時我遇到了一個有趣的包括InnoDB間隙鎖的情形。對于一個WHERE子句不匹配任何行的非插入的寫操作中,我預期事務應該不會有鎖,但我錯了。讓我們看一下這張表及示例UPDATE。

 

 
  1. mysql> SHOW CREATE TABLE preferences /G 
  2. *************************** 1. row *************************** 
  3. Table: preferences 
  4. Create Table: CREATE TABLE `preferences` ( 
  5. `numericId` int(10) unsigned NOT NULL, 
  6. `receiveNotifications` tinyint(1) DEFAULT NULL, 
  7. PRIMARY KEY (`numericId`) 
  8. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 
  9. 1 row in set (0.00 sec) 
  10. mysql> BEGIN; 
  11. Query OK, 0 rows affected (0.00 sec) 
  12. mysql> SELECT COUNT(*) FROM preferences; 
  13. +----------+ 
  14. | COUNT(*) | 
  15. +----------+ 
  16. | 0 | 
  17. +----------+ 
  18. 1 row in set (0.01 sec) 
  19. mysql> UPDATE preferences SET receiveNotifications='1' WHERE numericId = '2'
  20. Query OK, 0 rows affected (0.01 sec) 
  21. Rows matched: 0 Changed: 0 Warnings: 0 

InnoDB狀態顯示這個UPDATE在主索引記錄上持有了一個X鎖:

 

 
  1. ---TRANSACTION 4A18101, ACTIVE 12 sec 
  2. 2 lock struct(s), heap size 376, 1 row lock(s) 
  3. MySQL thread id 3, OS thread handle 0x7ff2200cd700, query id 35 localhost msandbox 
  4. Trx read view will not see trx with id >= 4A18102, sees < 4A18102 
  5. TABLE LOCK table `test`.`preferences` trx id 4A18101 lock mode IX 
  6. RECORD LOCKS space id 31766 page no 3 n bits 72 index `PRIMARY` of table `test`.`preferences` trx id 4A18101 lock_mode X 

這是為什么呢,Heikki在其bug報告中做了解釋,這很有意義,我知道修復起來很困難,但略帶厭惡地我又希望它能被差異化處理。為完成這篇文章,讓我證明下上面說到的死鎖情況,下面中mysql1是第一個會話,mysql2是另一個,查詢的順序如下:

 

 
  1. mysql1> BEGIN; 
  2. Query OK, 0 rows affected (0.00 sec) 
  3. mysql1> UPDATE preferences SET receiveNotifications='1' WHERE numericId = '1'
  4. Query OK, 0 rows affected (0.00 sec) 
  5. Rows matched: 0 Changed: 0 Warnings: 0 
  6. mysql2> BEGIN; 
  7. Query OK, 0 rows affected (0.00 sec) 
  8. mysql2> UPDATE preferences SET receiveNotifications='1' WHERE numericId = '2'
  9. Query OK, 0 rows affected (0.00 sec) 
  10. Rows matched: 0 Changed: 0 Warnings: 0 
  11. mysql1> INSERT INTO preferences (numericId, receiveNotifications) VALUES ('1''1'); -- This one goes into LOCK WAIT 
  12. mysql2> INSERT INTO preferences (numericId, receiveNotifications) VALUES ('2''1'); 
  13. ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction 

現在你看到導致死鎖是多么的容易,因此一定要避免這種情況——如果來自于事務的INSERT部分導致非插入的寫操作可能不匹配任何行的話,不要這樣做,使用REPLACE INTO或使用READ-COMMITTED事務隔離。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品视频—区二区三区免费| 精品国产一区二区三区久久| 欧美重口另类videos人妖| 欧美日韩国产一区二区| 91在线观看免费高清| 久久色精品视频| 久久国产视频网站| 欧美一二三视频| 亚洲国产欧美一区二区丝袜黑人| 日韩经典第一页| 欧美日韩国产精品一区二区不卡中文| 成人妇女免费播放久久久| 国产精品福利在线| 国产精品亚洲片夜色在线| 国产精品一二区| 亚洲国产精品资源| 日韩中文字幕免费视频| 亚洲精品自拍偷拍| 美女扒开尿口让男人操亚洲视频网站| 欧美美女15p| 欧美中文字幕视频在线观看| 久久久久久久999| 91精品视频大全| 国产福利精品在线| 亚洲一区二区精品| 亚洲欧洲一区二区三区在线观看| 久久综合伊人77777尤物| 中文字幕欧美视频在线| 欧美最猛性xxxxx(亚洲精品)| 国产69久久精品成人看| 亚洲影院色在线观看免费| 国产精品高清网站| 日韩av手机在线观看| 在线成人中文字幕| 欧美尺度大的性做爰视频| 久久久精品亚洲| 97精品国产97久久久久久| 国产激情综合五月久久| 人体精品一二三区| 欧美黄色三级网站| 亚洲国产精久久久久久久| 伊人久久久久久久久久久久久| 97在线看免费观看视频在线观看| 中文字幕亚洲欧美日韩2019| 欧美在线亚洲一区| 91高清免费视频| 欧美成人在线免费| 精品久久久久久| 欧美极品少妇xxxxⅹ免费视频| 国产精品亚发布| 亚洲人成电影在线观看天堂色| 欧美激情乱人伦| 亚洲xxx大片| 国产日本欧美在线观看| 亚洲精品wwww| 久久男人av资源网站| 国产精品久久久久久久久免费| 国产精品无av码在线观看| 欧美大片免费观看在线观看网站推荐| 久久久久五月天| 亚洲精品av在线| 亚洲第一av在线| 欧美麻豆久久久久久中文| www.亚洲一区| 国产精品久久久久久久久男| 欧美视频专区一二在线观看| 91精品久久久久久久久青青| 欧美极品第一页| 日本精品免费一区二区三区| 色噜噜亚洲精品中文字幕| 精品国产精品自拍| 国产免费一区视频观看免费| 亚洲精品成a人在线观看| 欧美国产第一页| 日韩av片免费在线观看| 91亚洲精品一区二区| 一区二区三区在线播放欧美| 久久天天躁狠狠躁夜夜躁| 久久精品久久久久电影| 日韩av电影手机在线观看| 久久影视免费观看| 欧美色xxxx| 欧美电影在线观看高清| 亚洲欧美综合精品久久成人| 亚洲国产欧美在线成人app| 中文字幕亚洲欧美| 国产精品爱啪在线线免费观看| 亚洲大胆人体在线| 久久最新资源网| 亚洲精品在线看| 亚洲第一区第一页| 97视频在线观看成人| 欧美日韩亚洲天堂| 亚洲精品福利在线| 欧美激情按摩在线| 久久久久久久一区二区三区| 在线日韩精品视频| 日韩美女视频在线观看| 色七七影院综合| 久久久久久久久久久成人| 欧美乱人伦中文字幕在线| 性夜试看影院91社区| 午夜精品三级视频福利| 欧美在线中文字幕| www.久久撸.com| 在线电影中文日韩| 精品视频www| 欧美性理论片在线观看片免费| 国产成人久久久| 久久夜色精品亚洲噜噜国产mv| 最近中文字幕mv在线一区二区三区四区| 亚洲成人性视频| 久久精品99国产精品酒店日本| 国产免费观看久久黄| 欧美大片免费看| 国产精品成人一区二区三区吃奶| 97在线视频免费观看| 国产精品www| 欧美精品18videos性欧美| 久久九九精品99国产精品| 69**夜色精品国产69乱| 97免费中文视频在线观看| 亚洲自拍高清视频网站| 亲爱的老师9免费观看全集电视剧| 69影院欧美专区视频| 久久亚洲精品中文字幕冲田杏梨| 国产精品一区二区三区免费视频| 成人黄色免费网站在线观看| 日韩精品高清在线观看| 日韩欧美亚洲范冰冰与中字| 亚洲美女av黄| 91色琪琪电影亚洲精品久久| 岛国av一区二区| 欧美三级xxx| 亚洲综合色av| 欧洲s码亚洲m码精品一区| 日韩欧美第一页| 日韩国产一区三区| 欧美午夜片在线免费观看| 成人性教育视频在线观看| 一本色道久久88综合亚洲精品ⅰ| 国产极品精品在线观看| 午夜美女久久久久爽久久| 另类图片亚洲另类| 欧美视频一二三| 亚洲激情免费观看| 日韩欧美中文免费| 国产精品美女在线观看| 国产亚洲精品91在线| 久久亚洲国产精品成人av秋霞| 日韩在线观看电影| 久久精品99无色码中文字幕| 久久久国产一区二区三区| 日韩电影中文字幕一区| 日本一区二三区好的精华液| 4444欧美成人kkkk| 欧美日韩国产综合视频在线观看中文| 色yeye香蕉凹凸一区二区av| 精品国产电影一区| 懂色av一区二区三区| 精品福利在线视频| 午夜精品久久久99热福利| 欧美日韩中国免费专区在线看| 精品福利在线观看|