MySQL の公式ドキュメントでは、これらの変数の説明にかなりの混乱があります。
それによると、max_binlog_cache_sizeは、
トランザクションがこのバイト数よりも多くのメモリを必要とする場合、サーバーは複数ステートメント トランザクションが 'max_binlog_cache_size' バイト以上のストレージ エラーを必要とすることを生成します。
max_binlog_cache_size は、トランザクション キャッシュのみのサイズを設定します
そしてbinlog_cache_sizeは、
トランザクション中にバイナリ ログへの変更を保持するキャッシュのサイズ。
binlog_cache_size は、トランザクション キャッシュのみのサイズを設定します
ドキュメントを読むと、これら 2 つに違いはないことがわかりました。ドキュメントには、次のような非常に紛らわしいものもあります。
MySQL 5.7 では、max_binlog_cache_size のセッションに対する可視性は binlog_cache_size システム変数の可視性と一致します。つまり、値を変更すると、値が変更された後に開始された新しいセッションにのみ影響します。
サーバー変数を照会すると、両方が表示されます。MySQL 5.6とMySQL 5.7があります。私が知る必要があるのは、どのサーバーに対してどの変数を考慮して構成する必要があるかということだけです。
MySQL 5.6のbinlog_cache_sizeとMySQL 5.7のmax_binlog_cache_size ??
これらに関連して、さらに紛らわしい変数max_binlog_stmt_cache_sizeとbinlog_stmt_cache_sizeがあります。