mysql - InnoDB中的鎖
問(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ì)話(huà)隔離級(jí)別是repeated read,會(huì)產(chǎn)生更多的gap鎖,如果可以接受幻讀,可以考慮降為read commit級(jí)別,減少鎖沖突的概率。
相關(guān)文章:
1. html - vue項(xiàng)目中用到了elementUI問(wèn)題2. mysql scripts提示 /usr/bin/perl: bad interpreter3. showpassword里的this 是什么意思?代表哪個(gè)元素4. css3 - border-bottom 的長(zhǎng)度可否超過(guò)盒子的寬度呢?實(shí)現(xiàn)如下圖效果。(我的書(shū)下面的線(xiàn))5. android - 用textview顯示html時(shí)如何寫(xiě)imagegetter獲取網(wǎng)絡(luò)圖片6. 對(duì)mysql某個(gè)字段監(jiān)控的功能7. css3 - css怎么實(shí)現(xiàn)圖片環(huán)繞的效果8. javascript - 原生canvas中如何獲取到觸摸事件的canvas內(nèi)坐標(biāo)?9. JavaScript事件10. mysql優(yōu)化 - mysql EXPLAIN之后怎么看結(jié)果進(jìn)行優(yōu)化 ?
