mysql でトランザクションのロールバックの進行状況を表示する方法

一度実行が非常に遅い大きなトランザクションに遭遇したので強制終了しましたが、show processlist を見つけました。強制終了の SQL はまだ表示されています。SQL のステータスは強制終了に変わりましたが、実際には強制終了されていません。このとき、トランザクションのロールバックの進行状況を確認することができ、いつ SQL をロールバックできるかを大まかに知ることができます。

表示方法:

select * from information_schema.INNODB_TRX where trx_id=事务id \G;

trx_rows_locked、trx_rows_modified に注目します。

trx_rows_modified の値が 0 になるまで減少し続け、ロールバックが完了したことがわかります。

--通常のトランザクション(非ロールバックトランザクション)の実行進捗状況を確認したい場合は、trx_rows_lockedの値が小さい値から大きい値に変化していることが分かり、一斉にロックされる整流テーブルではないため、全体の進捗状況を確認するには、このテーブルのレコード数も参照して見積もる必要があります。

おすすめ

転載: blog.csdn.net/YABIGNSHI/article/details/130604797