一个innodb next-key lock的问题

表结构:
CREATETABLE`test_lock`(
`id`int(10)unsignedNOTNULLAUTO_INCREMENT,
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=60DEFAULTCHARSET=utf8
隔离级别:REPEATABLE-READ
innodb_locks_unsafe_for_binlog:0
表内容:
+----+
|id|
+----+
|12|
|39|
|59|
+----+
session1:
mysql>begin;
QueryOK,0rowsaffected(0.00sec)
mysql>select*fromtest_lockwhereid<=39forupdate;
+----+
|id|
+----+
|12|
|39|
+----+
2rowsinset(0.00sec)
session2:
mysql>insertintotest_lockvalues(40);
问题:
1.id是主键,为什么session2还会等待session1的锁呢
2.就算有next-keylock,它不应该是锁住(39,59]吗,为什么在session2中插入的值是70时还会等待呢。
交互式爱情
浏览 542回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript