TRUNCATE TABLE is normally regarded as a DML statement, and so would be expected to be
logged and replicated using row-based format when the binary logging modę is ROW
or MIXED.
However this caused issues when logging or replicating, in STATEMENT or MIXED modę, tables that
used transactional storage engines such as InnoDB when the transaction isolation level was RE AD
COMMITTED or READ UNCOMMITTED, which precludes statement-based logging. TRUNCATE TABLE is treated for purposes of logging and replication as DDL rather than DML so that
it can be logged and replicated as a statement. However, the effects of the statement as applicable
to InnoDB and other transactional tables on replication slaves still followthe rules described in
Section 13.1.33, “TRUNCATE TABLE Syntax" governing such tables. (Bug #36763)