Mysql 仅在一个表上而不是在另一个表上发生锁定超时
我有一个名为Mysql 仅在一个表上而不是在另一个表上发生锁定超时,mysql,Mysql,我有一个名为user的表,它有25000个条目。在一天中的某个特定时间,我在MySQL中遇到以下错误: 超过锁定等待超时;尝试重新启动事务 我的所有表列都已正确索引。 这个错误只发生在这个表中,因为我有许多表的数据比这个表多。在那些表中,我从未遇到过这个超时错误 发生了什么事? 再次尝试查找有关该表的更多详细信息,并了解该表被锁定的原因和原因 SHOW ENGINE INNODB STATUS\G; SHOW FULL PROCESSLIST; 为什么会发生? 如果某个事务发生在该特定表上,那
user
的表,它有25000个条目。在一天中的某个特定时间,我在MySQL中遇到以下错误:
超过锁定等待超时;尝试重新启动事务
我的所有表列都已正确索引。这个错误只发生在这个表中,因为我有许多表的数据比这个表多。在那些表中,我从未遇到过这个超时错误 发生了什么事? 再次尝试查找有关该表的更多详细信息,并了解该表被锁定的原因和原因
SHOW ENGINE INNODB STATUS\G;
SHOW FULL PROCESSLIST;
为什么会发生?
如果某个事务发生在该特定表上,那么该表上的另一个事务将不得不等待,因为第一个线程持有某个记录的记录锁(行级锁)
供参考:
这意味着第二个事务必须等待50秒(默认值)才能获得锁
解析步骤:
设置innodb\u lock\u wait\u timeout=120代码>
mysql> SET tx_isolation = 'READ-COMMITTED';
mysql> SET GLOBAL tx_isolation = 'READ-COMMITTED';
看,我想这会有帮助的。