我知道这听起来很奇怪,但显然我的其中一列被锁定了。
select * from table where type_id = 1 and updated_at < '2010-03-14' limit 1;
select * from table where type_id = 3 and updated_at < '2010-03-14' limit 10;
第一个无法完成运行,而第二个顺利完成。唯一的区别是type_id
提前感谢你的帮助 - 我有一份紧急的数据工作要完成,这个问题让我抓狂
答案1
你为什么不看看还有SHOW FULL PROCESSLIST
哪些其他线程正在访问系统,然后终止那些可能正在使用该行的线程呢?
InnoDB 具有行级锁定,而不是列级锁定。您更改 type_id 的事实意味着它选择了不同的行,并且该行被锁定。