一句概要、チェックポイント テクニックつまり、ある時点で保存池内の点刷りを磁盘に戻す操作
都知道缓冲セルの発生は、CPU とマグネティックの速度の間の混乱を認識するためであり、これにより、データの書き込み中にマグネティックス IO 操作を実行する必要がなくなりました。
#DML の例のように、データの更新または削除操作を実行すると、冷却セルのデータが磁場よりも新しいため、このときの設定が変更されます。 不管怎样、会議後の内部保存データは磁盘里に戻る必要があります、ここに就涉及几个问题:redo log(重做日志),在修改缓冲池データ页,这样電気が発生した場合、システムは再実行後に操作を続行できます。
WAL ポリシー機構の原理
障害が発生してメモリ データが失われた場合、InnoDB は再起動時に REDO ログを再生することでバッファ プール データ ページをクラッシュ前の状態に復元します。
WAL戦略を使えば、座ってリラックスできるのは当然です。しかし、REDO ログで問題が再び発生します。アイドル状態で復元されます。REDO ログが大きすぎる場合、リカバリのコストも非常に高くなります。
1. データベースの復旧時間を短縮します
データベースがアイドル状態で復元されると、やり直しの必要がありません。すべてのログ情報。チェックポイント前のデータ ページがディスクにフラッシュ バックされているためです。チェックポイントの後に REDO ログを復元するだけです。2. バッファー プールが十分でない場合は、ダーティ ページをディスクにフラッシュします。
バッファー プールのスペースが不十分な場合、最も最近使用されていないページが、このページがダーティ ページである場合、チェックポイントにダーティ ページ、つまりページの新しいバージョンを強制的にフラッシュしてディスクに戻す必要があります。3. REDO ログが利用できない場合は、ダーティ ページを更新します
図に示すように、REDO ログは現在のデータベースが使用できないため、デザインはすべてリサイクルされるため、スペースは無限ではありません。
REDO ログがいっぱいになると、現時点ではシステムが更新を受け入れることができないため、すべての更新ステートメントがブロックされます。
現時点では、チェックポイントを強制的に生成する必要があります。書き込み位置を前方にプッシュする必要があり、プッシュ範囲内のダーティ ページをディスクにフラッシュする必要があります。チェックポイントの種類チェックポイントが発生する時間、条件、ダーティ ページの選択は非常に複雑です。 チェックポイント 毎回ディスクにフラッシュされるダーティ ページの数はどれくらいですか? Checkpoint は毎回どこからダーティ ページを取得しますか? チェックポイントはいつトリガーされますか?上記の問題に直面して、InnoDB ストレージ エンジンは内部的に 2 つのチェックポイントを提供します。
Sharp Checkpoint
データベースがシャットダウンされ、すべてのダーティ ページがディスクにフラッシュされます。これがデフォルトの動作方法です。パラメータ innodb_fast_shutdown=1
ほぼ毎秒または 10 秒ごとに、バッファ プール内のダーティ ページ リストから特定の割合のページをディスクにフラッシュします。
このプロセスは非同期です。つまり、InnoDB ストレージ エンジンはこの時点で他の操作を実行でき、ユーザー クエリ スレッドはブロックされません#概要
CPU とディスクの間にギャップがあるため、バッファー プール データ ページはデータベース DML 操作を高速化するようです
#その他の関連する無料学習の推奨事項:
(ビデオ)
以上がInnoDB のチェックポイント テクノロジーを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。