1. はじめに MySQL が起動すると、BufferPool が初期化されます。クエリ操作を実行する前は、BufferPool のキャッシュ ページは空のメモリ ブロックであり、使用されておらず、データも保存されていません。 また、それが指すキャッシュ ページは、キャッシュ ページの説明情報を通じて直接かつ一意に見つけることができることもわかっています。 ディスクから読み取ったデータ ページをどのバッファー ページに配置する必要があるか考えたことがありますか? この問題により、フリー リストが表示されます。 2. フリーリスト 実際、フリー リストは、キャッシュ ページの説明情報に基づいてバッファー プールに編成された双方向リンク リストです。つまり、フリーリスト内の各ノードは、キャッシュページに対応する記述情報です。指定されたキャッシュページ(キャッシュページ)は説明情報を通じて見つけることができます InnoDB が Free List を設計した本来の目的は、上記の問題を解決することです。 このキャッシュ ページにデータが格納されていない場合、対応する説明情報はフリー リストに保持されます。このとき、ディスクから読み取ったデータ ページをキャッシュ ページに配置する場合は、まずフリー リストからノードを見つけ (フリー リスト内のすべてのノードは、一度も使用されたことのないキャッシュ ページを指します)、その後、読み取ったデータ ページをそのノードが指すキャッシュ ページに配置する必要があります。 対応: データがデータ ページに配置された後。対応する説明情報ブロックはフリーリストから削除されます。 3. データ ページがキャッシュ内にあるかどうかを確認するにはどうすればよいでしょうか? MySQL は、読み取ったデータ ページがキャッシュ ページ内にあるかどうかをどのようにして認識するのか疑問に思ったことはありませんか? この関数の実装は、別のデータ構造、ハッシュテーブルに依存します。 キー = テーブルスペース番号 + データページ番号 値 = キャッシュページアドレス ハッシュ テーブルに存在する場合、データ ページがバッファー プールにすでに存在するため、バッファー プール内のキャッシュ ページが最初に使用されます。バッファ プール内のキャッシュ ページが最初に使用される理由は、間違いなく推測できると思います。まず、ランダム ディスク IO が回避されます。次に、キャッシュ ページ内のデータは変更されたダーティ データである可能性があります。 以上がMySQLのFreeListメカニズムの詳細な説明です。MySQLのFreeListメカニズムの詳細については、123WORDPRESS.COMの他の関連記事をご覧ください。 以下もご興味があるかもしれません:
|
>>: Dockerを使用してシンプルなJava開発およびコンパイル環境を構築する方法の詳細な説明
目次1. 匿名スロット2. 名前付きスロット要約するスロット (slot) は、Vue のコンテンツ...
1. コマンドの紹介date コマンドは、現在の時刻または指定された時刻を指定された形式で表示するた...
序文デッドロックの本質はリソースの競合です。バッチ挿入の順序が一貫していないと、デッドロックに陥りや...
コマンドを実行してプラグインpostcss-pxtoremをインストールします npm インストール...
システムをリセットした後、かなり前にインストールした MySQL データベースのコンソール クエリで...
rpmコマンドがソフトウェアのインストールに使用するパラメータはどれですか: -i rpm コマンド...
Neo4j (Nosql の 1 つ) は、高性能なグラフ データベース (分散をサポートしていませ...
最初はたくさんのエラーを見つけましたが、実際には非常に簡単です。shtm の元の設定を参照するだけで...
検索エンジン最適化 (SEO) では実行すべきタスクが多数ありますが、その中でもコードの最適化は重要...
序文仮想通貨の狂気的な投機により、マイニングウイルスは犯罪者が最も頻繁に使用する攻撃方法の 1 つに...
この記事では、audioContextを介して3Dサウンド効果を実現するためのjsの具体的なコードを...
目次序文1. 現在のgccバージョン2. gccをインストールする3.gmpのインストール4.MPF...
テーブル ヘッダーでは、明るい境界線の色を個別に定義できます。基本的な構文<TH ボーダーカラ...
MySQL を自分でインストールするのに 3 時間かかりました。チュートリアルはたくさんあるにもかか...
MySQLのインストール(4、5、6は省略可能)ステートメント: CentOS のバージョンは 7....