ホームページ  >  記事  >  データベース  >  MySQL の Redo ログと Undo ログとは何ですか?

MySQL の Redo ログと Undo ログとは何ですか?

WBOY
WBOY転載
2023-05-30 16:07:311841ブラウズ

    1. Redo ログの概要

    Redo ログは、ページの変更を記録する物理ログです。

    1.1 Redo ログの役割

    • データベースの書き込み効率の向上

    • データベースがデータを失わず、パフォーマンスを保証します。データリカバリ

    1.2 REDO ログの形式とタイプ

    いわゆる REDO 編成方法とは、効率的な REDO 書き込みを容易にするために、必要な REDO コンテンツをディスク ファイルに記録する方法です。 、読み取り、復元、クリーニングを行います。 REDO を上から論理 REDO 層、物理 REDO 層、ファイル層の 3 つの層に分割します。

    • 論理 REDO 層

    この層は実際の REDO コンテンツであり、順次データ フローです。REDO は複数の REDO レコードで構成され、接続されています。 InnoDB は、グローバル log_sys 内の現在の sn の最大値を維持し、データが書き込まれるたびに REDO コンテンツの長さだけ sn を増やします。

    • 物理 REDO 層

    ディスクはブロック デバイスです。InnoDB はデータの読み取りと書き込みにもブロックの概念を使用します。ブロックは OS_FILE_LOG_BLOCK_SIZE と同じです。 ディスク セクターのサイズは 512B で、各 IO 読み取りおよび書き込みの最小単位はブロックです。

    • #ファイル層

    最終的に REDO は REDO ログ ファイルに書き込まれ、ログ ファイルはループ内に書き込まれます

    MySQL の Redo ログと Undo ログとは何ですか?

    2. REDO ログ (MTR) の書き込みプロセス

    • ユーザー スレッドの操作は、最初に

      ログに書き込まれます。バッファ

    • ログ バッファ 内のログは、REDO 論理ログ

    • に順次書き込まれ、その後ディスクに保存

    • #ストレージが完了したことをユーザーに通知
    • #3. チェックポイント メカニズム

    チェックポイントは、REDO ログ内のダーティ ページのマーキング ビットには次の 2 つの機能があります:

      クリーニングを容易にするために REDO ログを維持する
    • 再起動ワークロードの削減

    MySQL の Redo ログと Undo ログとは何ですか?##データベース回復プロセス:

    チェックポイント情報の読み取り•チェックポイントの位置から開始して残りのログを読み取ります
    • #ログを解析し、space_no と page_id に従ってハッシュ テーブルを構築します

    • #REDO ログを適用し、REDO ログの再生で冪等性を確保します。

    • binlog を解析して xid リストを構築します

    • ロールバック セグメントをスキャンして、保留中のトランザクションのリスト

    • xid リストにないトランザクションをロールバックする

    • 4. Undo ログの概要

      Undo ログは、データの増分変更を記録する論理ログであり、その機能はトランザクションのアトミック性とトランザクションの同時実行制御を保証することです。 書き換え: Undo ログは、論理ログとして機能し、データの増分変更をログに記録することで、トランザクションのアトミック性を保証し、同時実行性を制御します。これを使用して、トランザクションのロールバック、マルチバージョン制御 (MVCC) の実装、読み取り/書き込みの競合と一貫した読み取りの解決を行うことができます。
    5. MVCC

    MVCC の意味:

    ##読み取りと書き込みは相互にブロックしません。

      デッドロックの可能性を減らし、
    • #一貫した読み取りを実現します。
    • MVCC における UndoLog の役割:
    • ##各トランザクションには 1 つずつ増加するトランザクション ID があります;

    データ ページの行レコードには、DB_ROW_ID、DB_TRX_ID、DB_ROLL_PTR が含まれています。

    • #DB_ROLL_PTR は、リンク リスト構造を介してデータ行のすべてのスナップショット レコードを連結します。 。

    以上がMySQL の Redo ログと Undo ログとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。