相关疑难解决方法(0)

delete操作锁定innodb中的整个表

我在InnoDB中有关于删除操作的表锁定问题.我有一个表队列,例如一列和许多事务,可以将行插入此队列或删除它们.没有任何两个事务同时使用相同的行.因此,所有行锁必须是不同的.但有时当删除操作删除表中的大部分行时,InnoDB更喜欢使用表锁而不是行锁,这会导致死锁.

我无法准确地重现这个死锁,但我发现了锁定问题.即我有表队列:id值(1,3,4,5,6,7)

交易1:

insert into queue value(2);
Run Code Online (Sandbox Code Playgroud)

交易2:

delete from queue where id in (1,3,4,5,6,7); -- here the lock comes
Run Code Online (Sandbox Code Playgroud)

mysql deadlock innodb

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

deadlock ×1

innodb ×1

mysql ×1