mysql ダーティ ページとは何を指しますか?

王林
リリース: 2023-05-30 12:01:45
転載
1186 人が閲覧しました

MySQL でメモリ データ ページとディスク データ ページの内容が異なる場合、このメモリ ページはダーティ ページと呼ばれます。ダーティ ページをフラッシュするシナリオ: 1. REDO ログがいっぱいになると、MySQL はすべての更新操作を一時停止し、ログのこの部分に対応するダーティ ページをディスクに同期します; 2. システム メモリが不十分な場合、一部のデータ ページは削除される場合 ダーティ ページがダーティ ページの場合は、まずダーティ ページをディスクに同期する必要があります; 3. MySQL は、システムがアイドル状態のときに、機会があればメモリ データをディスクに同期すると考えます。この場合、パフォーマンス上の問題はありません。

ダーティ ページ (メモリ ページ)

  • クリーン ページ: メモリとディスク内のデータは一貫しています

  • ダーティ ページ: メモリとディスク内のデータに一貫性がない

ダーティ ページが表示される理由

通常は高速な更新操作、すべてメモリとログへの書き込み。 をディスク データ ページにすぐに同期するわけではありません。このとき、メモリ データ ページとディスク データ ページの内容が不一致になります。これを ダーティ ページ と呼びます。

これには、mysql のメモリ管理メカニズムが関係します。

メモリ管理メカニズムの簡単な説明

バッファには、これら 3 つのカテゴリのリストが含まれています。それらは、

LRUListFreeListFlushListです。

データベースが最初に起動されたとき、LRUlist には

データ ページ が存在しません。 FreeList には空きページが保存されます。

    #ページを読み込む必要がある場合、FreeList から空きページを取得し、データを読み込んだ後、LRUlist に配置します。 # #FreeList に空きページがない場合、LRU アルゴリズムに従って LRU リストの最後のページが削除されます。
  • LRUlist 内のページが変更されると、ページはダーティ ページになります。このページは FlushList にも追加されます
  • 注: 現時点では、このページは LRUlist と FlushList の両方に含まれています。

  • 概要: LRUList (読み取られたページの管理) と FreeList (空きページの管理) はページの可用性の管理に使用され、FlushList (ダーティ ページの管理) はダーティ ページの更新の管理に使用されます
ダーティ ページ データをディスクに同期するプロセス中に、SQL ステートメントがディスク データ ページで実行された場合。実行速度が遅くなります。

データの変更と読み取りにバッファだけを使用しても問題ありませんか?

キャッシュ領域のみをデータの変更と読み取りに使用する場合は、データベースを一度読み取ります。 マシンがクラッシュすると、キャッシュ領域のデータが失われます。したがって、MySQL は以前に導入した REDO ログを使用して、異常な再起動が発生した場合のデータ回復を実現します。

簡単に説明すると、バッファを更新する前に、異常な再起動が発生した場合でもバッファ内のデータを確実に回復できるように、操作が REDO ログに記録されます。

ダーティ ページを更新する必要がある理由

データはバッファに配置されるだけであると上で述べましたが、データベースのダウンタイム、メモリ データの損失。したがって、ディスクにフラッシュする必要があります。

  • #REDO ログが無限に大きい場合、または多数のファイルが含まれている場合、システム内で多数の変更操作が行われることになり、システムがダウンすると、回復に非常に時間がかかります。長さ。

  • したがって、必然的に、特定のルールに従って、メモリ内のダーティ ページを
  • ディスクにリフレッシュする必要があります。リフレッシュ操作では、バッファのサイズが決まります。 REDO ログの問題とサイズの両方を解決できます。

バッファはディスクに永続化できるため、無限である必要はありません。

REDO ログ内のデータはディスクに永続化されるため、ディスクにデータを追加すると、対応する部分のデータを解放できるため、REDO ログを大きく設定する必要はありません。
  • #ダーティ ページのブラッシングには次の 4 つのシナリオがあります
  • 未定義

    それが引き起こす影響

REDO ログがいっぱいの場合は、

REDO ログがいっぱいになるのを避けてください。そうしないと、システム全体のアップデートが停止します。 この時点で、書き込みパフォーマンスは 0

となり、ログに対応する

ダーティ ページの同期が完了するまで待たなければ更新できません。これにより、SQL ステートメントが実行されます。とても遅くなる。

以上がmysql ダーティ ページとは何を指しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート