實例鎖定行: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