实例锁定行:MySQL的:如何找到交易
START TRANSACTION;
UPDATE books SET printedCount=1000 WHERE id=5;
我怎样才能找到哪个表books
行被打开交易锁定(或ID,这些行的主键)?我想跟踪这些信息以防止我的高负载Web应用程序出现死锁,如果可能受这些查询影响的行已被锁定,可能会延迟一些更新查询。
实例锁定行:MySQL的:如何找到交易
START TRANSACTION;
UPDATE books SET printedCount=1000 WHERE id=5;
我怎样才能找到哪个表books
行被打开交易锁定(或ID,这些行的主键)?我想跟踪这些信息以防止我的高负载Web应用程序出现死锁,如果可能受这些查询影响的行已被锁定,可能会延迟一些更新查询。
SHOW ENGINE INNODB STATUS;
不幸的是,有没有办法赶上所有死锁。相反,定期运行以查看是否存在正在进行的死锁;然后在这种情况下工作。
与MySQL 8.0.1开始,这个仪器是在performance_schema:
SELECT * from performance_schema.data_locks;
见 https://dev.mysql.com/doc/refman/8.0/en/data-locks-table.html