ログはすべてのアプリケーションにとって重要なデータです。MySQL には、エラー ログ、クエリ ログ、スロー クエリ ログ、トランザクション ログなどもあります。この記事では参考までに様々なログを簡単にまとめています。 バイナリログ バイナリ ログ binlog は、データベースによって実行された書き込み操作 (クエリを除く) 情報を記録するために使用され、バイナリ形式でディスクに保存されます。任意のストレージ エンジンを使用する MySQL データベースは、binlog ログを記録します。 binlog に記録されるのは論理ログ、つまり SQL ステートメントです。 SQL ステートメントが実行されると、binlog がログ ファイルに追加されます。 binlog ファイルのサイズを設定できます。サイズを超えると、新しいファイルが自動的に作成されます。 バイナリログ形式には、STATMENT、ROW、MIXED の 3 つがあります。
実際のアプリケーションでは、binlog は主にマスター スレーブ レプリケーションとデータ回復に使用されます。マスタースレーブレプリケーションとは、マスターマシンでバイナリログを開き、何らかの方法でスレーブマシンにバイナリログを送信することを意味します。スレーブマシンは、バイナリログの内容に基づいてデータ操作を実行し、マスタースレーブデータの一貫性を確保します。さらに、mysqlbinlog ツールを使用して、binlog からデータを復元することもできます。 MySQL 5.7 以降、組み込みのデフォルト エンジンは InnoDB エンジンに変更されました。 InnoDB エンジンがトランザクションを処理するときに、ログをディスクに書き込むタイミングを設定できます。デフォルトでは、ログはコミットごとにディスクに書き込まれます。 sync_binlog パラメータを設定して、システムを自動的に決定したり、N トランザクションごとに 1 回書き込んだりすることもできます。 クエリログ クエリ ログには、すべてのデータベース要求に関する情報が記録されます。これらのリクエストが適切に実行されたかどうか。有効にするとパフォーマンスに大きな影響を与えるため、あまり使用されません。 スロークエリログ スロー クエリ ログは、実行時間が特定のしきい値を超えるステートメントを記録するために使用されます。実行時間のしきい値は long_query_time で設定できます。デフォルトは 10 秒です。スロー クエリ ログは手動で有効にする必要がありますが、これはパフォーマンスに多少影響するため、通常は推奨されません。スロー クエリ ログは、ファイルまたはデータベース テーブルへのレコードの書き込みをサポートします。 トランザクションログREDOログ トランザクションの 4 つの主要な特性の 1 つは耐久性です。したがって、トランザクションが成功すると、データベースの変更は永続的に保存され、いかなる理由でも元の状態に復元することはできません。 REDO ログは、InnoDB エンジン層で実装されるログです。すべてのエンジンに備わっているわけではありません。トランザクションによってデータ ページに加えられた変更を記録するために使用され、クラッシュが発生した場合にデータを回復するために使用できます。 REDO ログには、メモリ内のログ バッファとディスク上のログ ファイルが含まれます。 SQL ステートメントが実行されると、まずログ バッファーに書き込まれ、次に複数のバッファーが一度にファイルに書き込まれます。 InnoDB では、データ ページもディスクにフラッシュされます。REDO ログの主な目的は、データ ページをディスクにフラッシュする必要性を減らすことです。データ ページへの変更のすべての REDO ログを保存する必要はありません。データ ページが REDO ログよりも速くフラッシュされる場合、REDO ログ レコードはデータ回復にとってあまり重要ではありません。データ ページが REDO ログよりも遅くフラッシュされる場合、データ ページよりも速い REDO ログの部分を使用してデータを迅速に回復できます。そのため、REDO ログ ファイルのサイズは固定されており、REDO ログが最後まで達すると先頭に戻ってループでログを書き込みます。 トランザクションログの元に戻すログ トランザクションの 4 つの主要な特性の 1 つは、アトミック性です。データベースに対する一連の操作は、すべて成功するか、すべて失敗するかのいずれかである必要があります。部分的な成功や部分的な失敗は許可されません。そのため、データの論理的な変化を記録する必要があります。アトミック性は、UNDO ログによって実現されます。たとえば、トランザクションで挿入ステートメントが実行されると、UNDO ログには削除ステートメントが記録されます。トランザクションで更新ステートメントが実行されると、UNDO ログには反対の更新ステートメントが記録されます。このように、トランザクションが失敗した場合、UNDO ログを通じてトランザクション前の状態にロールバックすることができます。 上記は重要なMySQLログファイルの概要の詳細内容です。MySQLログファイルの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: SpringBoot プロジェクトの Docker 環境を実行するときに発生する無限再起動問題の詳細な説明
>>: HTMLでマスクレイヤーを実装する方法 HTMLでマスクレイヤーを使用する方法
導入mysql-utilities ツールセットは、DBA のツールボックスとも言えるさまざまなツー...
目次前提TypeScript と JavaScriptコードエディタの選択TypeScriptを学ぶ...
1. msyqlの高速バージョンをダウンロードする docker pull hub.c.163.co...
一般的なアプリケーションでは、timestamp、datetime、int 型を使用して時間形式を保...
この記事では、効率を向上させ、時間を節約することを願って、最も効果的な 6 つの方法を紹介します。 ...
メタ属性には、name と http-equiv の 2 つがあります。 name 属性は主に、We...
実装のアイデア一番外側は大きな円(グラデーションカラー)グラデーションの円を覆うように、内側に半円を...
目次1. 概要2. Django プロジェクト3. Vueプロジェクト1. 概要プロジェクトで、ダウ...
padding-top パーセンテージを使用すると、固定幅と比例した高さの表示を実現できます。現在の...
html <div> 要素 <button type="button&q...
序文しばらく前にMysqlのデッドロック問題に遭遇したので、解決しました。問題の説明: Mysql ...
序文パーティション フィールドは主キーの一部でなければならないことは誰もが知っています。では、複合主...
目次配列分割代入オブジェクトの分解代入分割割り当ての適用変数の値の交換関数から複数の値を返すマップ構...
1. テーブルステートメントを作成します。 テーブル「従業員」を作成します( `emp_no` in...
序文CentOS に MySQL をインストールして設定する手順は次のとおりです。文章yumソースか...