ストレージエンジンは多くのデータベース管理システムで使用されている戦略を利用します。それは、もっとも頻繁にアクセスされるテーブルブロックをメモリー内で保持するキャッシュメカニズムを採用しています。呼ばれる特別な構造が維持されます。その構造には、もっとも多く使用されるインデックスブロックが置かれる多数のブロックバッファーが含まれます。特別なキャッシュを使用しません。代わりに、ネイティブオペレーティングシステムのファイルシステムキャッシュに依存します。キーキャッシュの基本動作について説明します。次に、キーキャッシュパフォーマンスを向上させる機能と、キャッシュ操作をより適切に制御できるようにする機能について説明します。複数のセッションが同時にキャッシュにアクセスできます。複数のキーキャッシュをセットアップし、特定のキャッシュにテーブルインデックスを割り当てることができます。システム変数を使用します。この変数がゼロに設定されている場合、キーキャッシュは使われません。割り当てられない場合も使用されません。キーキャッシュが動作していない場合、インデックスファイルはオペレーティングシステムによって提供されるネイティブファイルシステムバッファリングのみを使用してアクセスされます。(つまり、テーブルインデックスブロックは、テーブルデータブロックに採用されている同じ戦略を使用してアクセスされます。インデックスファイルへの連続したアクセスの単位です。ツリーのノードのサイズと等しくなります。ツリーデータ構造を使用して表されます。ツリーの下部にあるノードはリーフノードです。リーフノードの上にあるノードは非リーフノードです。)キーキャッシュ構造内のすべてのブロックバッファーは同じサイズです。このサイズは、テーブルインデックスブロックのサイズと等しいか、大きいか、小さくできます。つの値のうちの一方は、他方の倍数になります。いずれかのテーブルインデックスブロックのデータにアクセスする必要がある場合、サーバーはまず、キーキャッシュの何らかのブロックバッファーでそれを使用できるかどうかを確認します。ある場合、サーバーはディスク上ではなく、キーキャッシュ内のデータにアクセスします。ディスクから読み取ったり、それに書き込んだりするのではなく、キャッシュから読み取ったり、それに書き込んだりします。ない場合、サーバーは別のテーブルインデックスブロックを含むキャッシュブロックバッファーを選択し、そのデータを必要なテーブルインデックスブロックのコピーで置き換えます。新しいインデックスブロックがキャッシュに入れられるとただちに、インデックスデータにアクセスできます。置き換えのために選択されているブロックが変更されていた場合、ブロックは「ダーティー」とみなされます。この場合、置き換えられる前に、その内容が取得元のテーブルインデックスにフラッシュされます。置き換えるブロックを選択する場合、直近で使用されていないインデックスブロックを選択します。使用時間で順序付けして保持しています。ブロックがアクセスされると、それは直近で使用されたものになり、リストの末尾に置かれます。ブロックを置き換える必要がある場合、リストの先頭にあるブロックが、直近で使用されていないことになり、エビクションの最初の候補になります。アルゴリズムを使用します。バッファープール」を参照してください。