MySQL事务如何在程序语言级别实现监听死锁并且再再次启动事务呢?

即在语言级别就判断出死锁了,然后我就进行rollback,然后再次调起事务。

这套流程如何用程序语言实现? PHP

阅读 2.9k
1 个回答
  1. MySQL打开innodb lock monitor,innodb_status_output_locks = ON

  2. PHP连上MySQL

  3. 定时执行SHOW ENGINE INNODB STATUS

  4. 从结果中找到deadlok的会话ID

  5. kill掉会话,事务就回滚了

因为这个方法是从外部监听死锁,你的程序要处理会话被杀产生的异常,然后重试事务。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题