MySQL/MariaDBで、binlog_formatというのが、
- statement
- mixed
- row
とありますが、
このうち、mixedを選択していた場合、
statementかrowがクエリーのタイプによって、
決定されると書いてあったのだが、
よく見ると、tx_isolationが
『InnoDB
テーブルを使用中で、トランザクション分離レベルが READ COMMITTED
または READ UNCOMMITTED
の場合、行ベースのロギングのみを使用することができます。ロギング形式を STATEMENT
に変更することは可能ですが、InnoDB
は挿入を実行できないため、実行時にこれを行うと、非常に速くエラーが発生します。』
という記述が公式にあった。
rowだと、バイナリログの出力サイズが大きいから、
mixedにして削減しようと思ったが、
そもそもREAD COMMITEDで運用していたから、意味なかったという話。。