久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql - InnoDB中的鎖

瀏覽:112日期:2022-06-20 14:41:02

問(wèn)題描述

問(wèn)題解答

回答1:

------- TRX HAS BEEN WAITING 28 SEC FOR THIS LOCK TO BE GRANTED:RECORD LOCKS space id 6 page no 4 n bits 80 index idx_a of table `test`.`t` trx id 637972 lock_mode X locks gap before rec insert intention waitingRecord lock, heap no 4 PHYSICAL RECORD: n_fields 2; compact format; info bits 32 0: len 4; hex 8000000b; asc ;; 1: len 6; hex 000000000414; asc ;;

這里說(shuō)的很清楚啊 lock_mode X意味著是排它鎖 gap代表是區(qū)間鎖也就是說(shuō)在insert之前該表加入了區(qū)間排他鎖,為什么呢?因?yàn)橹皥?zhí)行的這句delete from t where a = 11;會(huì)在(negative infinity,11]這個(gè)區(qū)間加上排他鎖,為什么是排他鎖而不是Record Lock呢,因?yàn)槟氵@里的a并非唯一索引,只是一個(gè)普通的索引,具體的看http://dev.mysql.com/doc/refman/5.7/en/innodb-locking.html

回答2:

mysql默認(rèn)的會(huì)話隔離級(jí)別是repeated read,會(huì)產(chǎn)生更多的gap鎖,如果可以接受幻讀,可以考慮降為read commit級(jí)別,減少鎖沖突的概率。

相關(guān)文章:
主站蜘蛛池模板: 开江县| 南陵县| 榆中县| 百色市| 远安县| 嘉善县| 南涧| 阿克| 洪雅县| 仙游县| 中方县| 鄂托克旗| 呼伦贝尔市| 屯留县| 会宁县| 封开县| 鹿邑县| 牙克石市| 呼玛县| 科技| 宁河县| 江阴市| 鹤壁市| 贞丰县| 武山县| 张家口市| 海盐县| 泰宁县| 类乌齐县| 湘潭县| 轮台县| 衡山县| 临沧市| 宿迁市| 依安县| 册亨县| 曲靖市| 宜丰县| 隆尧县| 南丰县| 邯郸县|