web-dev-qa-db-ja.com

mysqlに混合ベースのレプリケーションを使用する理由

私はMySQLレプリケーションを構成中であり、行ベースのレプリケーションを使用するつもりですが、混合ベースのレプリケーションについても読んでいました。

これは、ステートメントベースがデフォルトであり、特定の状況では( http://dev.mysql.com/doc/refman/5.1/en/binary-log-mixed.html )MySQLが行ベースに切り替えます。

このリストは、行ベースにいつ切り替わるかについてはかなり広大です。

私の質問は次のとおりです。

混合を使用している人はいますか?はいの場合、なぜどちらか一方を使用するよりもこれを選択したのですか?

前もって感謝します

5

混合を使用している人はいますか?

MySQLリファレンスマニュアル :によると、これは長い間デフォルトであったため、多くの人が混合モードレプリケーションを使用しているに違いありません。

MySQL5.1.12からMySQL5.1.28まで、混合フォーマットがデフォルトです。 MySQL 5.1.29以降、ステートメントベースの形式がデフォルトです。

MySQL Performance Blog は、さまざまなレプリケーション方法に関するさまざまな問題について説明しています。

したがって、MySQLは5.1.xシリーズ内で混合モード、ステートメントベース、および行ベースのレプリケーションを切り替えようとしているようですが、それは不安です。

私は現在読んでいます High Performance MySQL、Second Edition O'Reillyから。レプリケーションに関するすばらしい章があり、読む価値があります。私の質問の多くは、1時間の読書で答えられました。 第8章レプリケーション>内部でのレプリケーション-357ページ :の章の一部を読むことができます。

どちらの形式もすべての状況に最適ではないため、MySQL5.1はステートメントベースのレプリケーションと行ベースのレプリケーションを動的に切り替えます。デフォルトでは、ステートメントベースのレプリケーションを使用しますが、ステートメントで正しくレプリケートできないイベントを検出すると、行ベースのレプリケーションに切り替わります。 binlog_formatセッション変数を設定することにより、必要に応じてフォーマットを制御することもできます。

1