如何高效识别并终止MySQL数据库中的死锁进程?

摘要:模拟死锁 客户端一 -- 启动事务 START TRANSACTION; -- 锁住 id = 1 的记录: UPDATE test_deadlock SET value = 'A1' WHE
模拟死锁 客户端一 -- 启动事务 START TRANSACTION; -- 锁住 id = 1 的记录: UPDATE test_deadlock SET value = 'A1' WHERE id = 1; 客户端二 -- 启动事务 START TRANSACTION; -- 锁住 id = 1 的记录: UPDATE test_deadlock SET value = 'B2' WHERE id = 1; 清理死锁 -- 开启事务 START TRANSACTION; TODO -- 提交或回滚事务 ROLLBACK; -- 或 COMMIT; 查看死锁 使用SHOW PROCESSLIST SHOW PROCESSLIST; 作用:显示当前所有线程的状态。 如果有线程状态是 Locked,说明该线程正在等待锁。 手动终止事务 KILL <事务ID>; 查看最近一次死锁日志 SHOW ENGINE INNODB STATUS; 执行上述命令后会显示最近一次死锁的详细信息,包括: 死锁涉及的事务 每个事务锁住的资源 引发死锁的具体 SQL 语句