MySQL 8.0 リファレンスマニュアル / ... / レプリケーション / レプリケーションの注釈とヒント / レプリケーションの機能と問題 / レプリケーションと 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)