MySQL 8.0 リファレンスマニュアル


17.5.1.37 レプリケーションと TRUNCATE TABLE

TRUNCATE TABLE は通常は DML ステートメントと見なされるため、バイナリロギングモードが ROW または MIXED のときは行ベース形式を使用してログが記録されて複製されることが予想されます。 しかしこのことが、InnoDB などのトランザクションストレージエンジン (トランザクション分離レベルが READ COMMITTED または READ UNCOMMITTED (ステートメントベースロギングを排除)) を使用するテーブルを STATEMENT または MIXED モードでログを記録または複製するときに、問題を発生させました。

TRUNCATE TABLE は、ロギングおよびレプリケーション目的のときはステートメントとしてログを記録し複製できるように、DML ではなく DDL として扱われます。 ただし、レプリカに対する InnoDB および他のトランザクションテーブルに適用可能なステートメントの影響は、そのようなテーブルを制御する セクション13.1.37「TRUNCATE TABLE ステートメント」 で説明されているルールに従います。 (Bug #36763)


関連キーワード:  ソース, ステートメント, ベース, バイナリ, トランザクション, GTID, テーブル, TABLE, 構成, ログ