超出MySQL锁等待超时

Pal*_*ami 4 mysql timeout locking

我有错误Lock wait timeout exceeded; try restarting transaction.这是什么原因以及如何解决问题?仅供参考:innodb_lock_wait_timeout = 100在MySQL配置文件中.

ewe*_*nli 6

这是锁争用的问题,最终导致其中一个锁超时.以下是一些建议:

  • 确保您具有正确的索引,这导致行级锁定而不是表级锁定.这将减少争用.
  • 确保您有外键约束的索引.要在insertor 期间检查关系约束update,如果没有这样的索引,某些数据库会锁定整个引用的表(不知道这是否是MySQL的情况)
  • 如果问题仍然存在,请尝试使事务更快/更小.同样,这将减少对数据库的争用.
  • 增加超时但保持值合理