MySQL の innodb_flush_log_at_trx_commit と sync_binlog を区別する方法

MySQL の innodb_flush_log_at_trx_commit と sync_binlog を区別する方法

2 つのパラメータ innodb_flush_log_at_trx_commit と sync_binlog は、MySQL ディスク書き込み戦略とデータ セキュリティを制御するための重要なパラメータです。

「innodb_flush_log_at_trx_commit」のような変数を表示します。

innodb_flush_log_at_trx_commit:

0: MySQL の main_thread は、ストレージ エンジン ログ バッファー内の redo ログを 1 秒ごとにログ ファイルに書き込み、ファイル システムの同期操作を呼び出してログをディスクに更新します。

1: トランザクションがコミットされるたびに、ストレージ エンジン ログ バッファー内の再実行ログがログ ファイルに書き込まれ、ファイル システムの同期操作が呼び出されて、ログがディスクに更新されます。

2: トランザクションがコミットされるたびに、ストレージ エンジン ログ バッファー内の REDO ログがログ ファイルに書き込まれ、ストレージ エンジンの main_thread によって 1 秒ごとにログがディスクにフラッシュされます。

「sync_binlog」のような変数を表示します。

同期バイナリログ:

0: ストレージ エンジンは binlog をディスクにフラッシュせず、オペレーティング システムのファイル システムがキャッシュのフラッシュを制御します。

1: トランザクションが送信されるたびに、ストレージ エンジンはファイル システムの同期操作を呼び出してキャッシュを更新します。この方法は最も安全ですが、パフォーマンスは低くなります。

n: 送信されたログ グループ = n の場合、ストレージ エンジンはファイル システムの同期操作を呼び出してキャッシュを更新します。

sync_binlog=0 または sync_binlog が 1 より大きい場合、トランザクションはコミットされていますが、まだディスクに同期されていません。したがって、停電やオペレーティング システムのクラッシュが発生した場合、バイナリ ログにまだ同期されていないトランザクションがサーバーによってコミットされている可能性があります。したがって、これらのトランザクションはバイナリ ログで失われるため、定期的なリカバリを実行することはできません。

innodb_flush_log_at_trx_commit と sync_binlog の両方が 1 の場合に最も安全です。mysqld サービスまたはサーバー ホストがクラッシュした場合、バイナリ ログでは最大で 1 つのステートメントまたは 1 つのトランザクションが失われる可能性があります。ただし、両方を同時に実現することはできません。1、1 を 2 回実行すると、IO 操作が頻繁に発生するため、このモードは最も遅い方法でもあります。

実際の使用においては、パフォーマンスとセキュリティに対するビジネスニーズを考慮し、2 つのパラメータの設定を総合的に検討する必要があります。上の写真は、当社のオンライン マシンのパラメータを示しています。

以上がMySQLのinnodb_flush_log_at_trx_commitとsync_binlogの見分け方の詳細です。MySQLのinnodb_flush_log_at_trx_commitとsync_binlogの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQL InnoDB アーキテクチャの概要
  • MySQL InnoDB ReplicaSet の簡単な紹介
  • MySQL InnoDB ストレージエンジンのメモリ管理の詳細な説明
  • MySQL Innodbの主な機能挿入バッファ
  • MySQL InnoDB ロックの概要
  • MySQL InnoDB ロック メカニズムの詳細な例
  • MySQLテクノロジーにおけるInnoDBロックの詳細な説明
  • MySQLデータベースエンジンをInnoDBに変更する
  • MySQL InnoDBストレージエンジンについて簡単に説明します
  • MySQL InnoDB テーブルスペース暗号化の例の詳細な説明
  • MySQL InnoDB トランザクション ロック ソースコード分析

<<:  Nginx の break と last の違いの詳細な分析

>>:  HTML ハイパーリンクの詳細な説明

推薦する

Dockerは1行のコマンドでFTPサービス構築の実装を完了します

1行のコマンド docker run -d \ -v /share:/home/vsftpd \ -...

MySQLデータのグループ化の詳細な説明

グループを作成グループ化は、SELECT ステートメントの GROUP BY 句で設定されます。例:...

Redis イメージの Docker インストールと設定手順

目次序文環境インストールMySQLコンテナを作成して起動する落とし穴を避けるための注意MySQLコン...

NginxにLuaモジュールを追加する方法

luaをインストールする http://luajit.org/download/LuaJIT-2.0...

HTTPSの最も優れた説明

皆さんおはようございます。しばらく記事を更新していませんでした。実は、私は流行中に1か月以上家にいて...

mysql5.7 でユーザーの初期パスワードを変更する方法

ユーザーが初めて MySQL データベースをインストールするとき、初期のルート パスワードを変更する...

ノードイベントループとメッセージキューの分析

目次非同期とは何ですか?なぜ非同期性が必要なのでしょうか?非同期IOとは何ですか?イベントループとは...

Unicode の数学記号の概要

数学、物理学、および一部の科学技術分野で使用される特殊記号は多数あります。Unicode コードには...

Linux CentOS 7.4 で mysql5.7.20 のパスワードを変更する方法

MySQL がバージョン 5.7 にアップグレードされた後、セキュリティが大幅に向上しました。しかし...

ウェブページのカラーマッチング例分析: 緑色のカラーマッチングウェブページ分析

<br />緑は黄色と青(寒色と暖色)の中間の色で、より穏やかな色です。そのため、緑は最...

mysql 5.7.20 win64 のインストールと設定方法

mysql-5.7.20-winx64.zipインストール手順のないインストール パッケージ: ht...

1時間で学ぶMySQLの基礎

目次MySQL を使い始めるMySQL 管理6. MySQL サーバーを起動および停止します。 7....

MySQL 5.5 で範囲パーティションを追加および削除する例

導入RANGE パーティション分割は、指定された連続した間隔範囲に基づいています。RANGE の初期...

MySQL のインデックスの原理とクエリの最適化の詳細な説明

目次1. はじめに1. インデックスとは何ですか? 2. インデックスはなぜ必要なのでしょうか? 2...

MYSQL スロークエリとログ設定とテスト

1. はじめにスロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメン...