[MySQLの] BINLOG 3つのフォーマットの紹介と分析

混合3つのMySQLのバイナリログログ文の行があります。

ステートメント

各SQLはバイナリログに記録されたデータを変更します。

利点:各行の変化は、ログバイナリログ、IO節約、改善された性能の量を減少させる、記録される必要はありません。(行パフォーマンスログを保存するエネルギーの量と比較して数、SQLアプリケーションに応じて、通常の編集やログ・レコード・フォーマット生成列の同じ量を入れ、ログ文の量も生成さ未満であるが、と更新条件を考慮した場合動作は、同様に削除テーブル全体、ALTERテーブルおよびその他の操作として、ROW方式は、大規模なログが生成され、したがって、それらが産生量は、ログの列の形式を使用するかどうかの数を増やし、そして持ち込まれるログ、アプリケーションと実際の状況に応じて考慮されるべきですIOパフォーマンスの問題。)

短所:唯一のスレーブ上で適切に実行するために声明、これらのステートメントを実行しているので、それぞれの文はまた、すべてのステートメントが最後にマスターとスレーブで実行し得ることを確実にするために、同じレコード、実施の過程でいくつかの情報を記録する必要があります結果。付加MySQLのレプリケーションでは、いくつかの特定の機能の機能は、スレーブ及びマスターとして多くの関連する問題が存在するであろう一致することができる(例えば、スリープ()関数、ならびにユーザ定義機能(UDF)の問題が発生する)(LAST_INSERT_ID)。

以下の機能は、文をコピーすることはできません。

  • LOAD_FILE()

  • UUID()

  • ユーザー()

  • FOUND_ROWS()

  • SYSDATE()(起動を有効にしない限り、--sysdateある-nowオプション)

そして、それはINSERTでRBR行レベルロックよりも多く生成されます... SELECTを

SQLステートメントは、変更されたレコードを保存し、コンテキスト情報を、記録されていません。

長所:コンテキスト依存情報がbinlogのSQL文で記録することはできませんが唯一のレコードが何に変更されていることを記録する必要があり、実行されます。だから、下のデータ変更の各ラインの非常に明確な内容になるコンテンツrowlevelレコードを記録します。そして、プロセスは、ある特定の状況、または関数の下に格納されず、問題が呼び出しをトリガーおよびトリガーを正しく再生することができません

短所:すべてのレコードを記録するために、それぞれの行を変更する時期ログインしたときに実行されたすべてのステートメントは、このようなバイナリログのそれぞれに複数のレコードを修正する更新ステートメントとしてログの内容の多くを生成することができ変更は、ALTER TABLE文による変更テーブル構造、各レコードが変更され、その後、テーブルを実行する場合は特に、各レコードに記録されます、バイナリログログは、かなりの量を持って引き起こすように、記録されます。

Mixedlevel:

MySQLが実行された各特定のSQL文に基づいて、そのようないくつかの関数として、一般的な文の修正を保存形式バイナリログなステートメントを使用して、ステートメントがマスターコピー操作から完了することができない、行フォーマットはバイナリログを保存するために使用され、レベルの二種以上の混合物でありますまた、最適化されたステートメント行の間に、ある処理レコードのログ形式、区別およびMySQL戦隊ローレベルモードの新しいバージョンを選択するために、すべての変更は、レコードに行レベルにはない遭遇テーブルとして構造変化は、文のモードで記録されますとき。このような更新や削除、データの修正などのステートメントについては、またはそれはすべての行の変更を記録します。

ビンログは、基本的な書式と調合しました

MySQLのバイナリログログ形式はbinlog_formatプロパティのmy.cnfファイルのMySQLで指定することができます。次のような:

binlog_format = MIXED // binlogのログフォーマット

log_bin =ディレクトリ/mysql-bin.log // binlogのログ名

expire_logs_days = 7 // binlogのクリーンアップ時間が期限切れ

max_binlog_size 100メートル// binlogの各ログファイルのサイズ

BINLOGログ形式オプション:

ステートメントMySQLのデフォルトのログ形式がMIXED推奨される使用することです。

いくつかの特別な使用のために、このようbinlogのログを経由して、独自のデータ同期を変更するよう、漕いを使用することを検討して、それが関連する操作の多くを保存します。バイナリログデータ処理のために、非常に簡単に比較的混合なり、解像度も非常に簡単に(もちろん、IOオーバヘッドによってもたらさログの増加量が許容範囲内とすることができることを条件とする)されるであろう。

mysqlbinlogはフォーマット選択:

言い換えれを行うには、管理INSERT、UPDATEを使用する場合、削除した場合など、操作テーブルを直接、ログ記録フォーマットセットbinlog_formatに従って、就業GRANT場合、REVOKE、SET PASSWORDステートメント:選択した原則のためにmysqlのログ形式、SBR記録モードの次に、いずれの場合に使用

公開された349元の記事 ウォン称賛14 ビュー90000 +

おすすめ

転載: blog.csdn.net/LU_ZHAO/article/details/105305180