バイナリログ
binlog フォーマット
SBR - Statement Based Replication
INSERT, UPDATE, DELETE 等のステートメントがそのまま記録する
MySQL 5.6 とそれ以前のデフォルト
ステートメントが何百万行更新しても、1ステートメント分のスペースしかとらない
非効率なパターンは、INSERT や1行の UPDATE
非決定性ステートメントを使うと死ぬ
READ-COMMITTED を使うと Master/Slave で不整合が発生する
RBR - Row Based Replication
更新された行データそのものを記録する
MySQL 5.1 から導入。MySQL 5.7 からのデフォルト
非決定ステートメントでも、実行結果が記録されるので不整合は生じない
MBR - Mixed Based Replication
処理の内容によって SBR と RBR を切り替える
MBR という名前自体はあまり使われない
非決定性ステートメントのみ RBR を利用する
MySQL 5.1 の一部のリビジョンのみでデフォルト
https://dev.mysql.com/doc/refman/5.6/ja/binary-log.html
InnoDB のログと バイナリログ は別物のようだ。
https://www.slideshare.net/yoku0825/mysql-86831302/9
https://yohei-a.hatenablog.jp/entry/20180303/1520079846
Executor から見た binlog
Executor からみると、binlog ストレージエンジン
XA トランザクション, 二相コミット
https://www.slideshare.net/yoku0825/mysql-58490400
参考