Documentation Home
MySQL 5.6 リファレンスマニュアル
Download this Manual
PDF (US Ltr) - 26.8Mb
PDF (A4) - 26.9Mb
HTML Download (TGZ) - 7.1Mb
HTML Download (Zip) - 7.2Mb


8.9.2.4 インデックスプリロード

キーキャッシュ内に、インデックス全体のブロックを保持するために十分なブロックがあるか、または少なくともその非リーフノードに対応するブロックがある場合、使用を開始する前に、キーキャッシュにインデックスブロックをプリロードすることは役立ちます。プリロードにより、インデックスブロックをディスクから順番に読み取ることで、もっとも効率的にテーブルインデックスをキーキャッシュバッファーに挿入できます。

プリロードしない場合、ブロックは、引き続きクエリーによって必要とされるときに、キーキャッシュに置かれます。ブロックはキャッシュ内にとどまりますが、それらのすべてに対して十分なバッファーがあるため、ディスクからランダムな順序で、順番ではなくフェッチされます。

インデックスをキャッシュにプリロードするには LOAD INDEX INTO CACHE ステートメントを使用します。たとえば、次のステートメントはテーブル t1 および t2 のインデックスのノード (インデックスブロック) をプリロードします。

mysql> LOAD INDEX INTO CACHE t1, t2 IGNORE LEAVES;
+---------+--------------+----------+----------+
| Table   | Op           | Msg_type | Msg_text |
+---------+--------------+----------+----------+
| test.t1 | preload_keys | status   | OK       |
| test.t2 | preload_keys | status   | OK       |
+---------+--------------+----------+----------+

IGNORE LEAVES 修飾子によって、インデックスの非リーフノードのブロックのみがプリロードされます。したがって、上記のステートメントは t1 からすべてのインデックスブロックをプリロードしますが、t2 からは非リーフノードのブロックのみをプリロードします。

インデックスが CACHE INDEX ステートメントを使用してキーキャッシュに割り当てられている場合、プリロードによって、インデックスブロックがそのキャッシュに置かれます。そうでない場合は、インデックスはデフォルトのキーキャッシュにロードされます。


User Comments
User comments in this section are, as the name implies, provided by MySQL users. The MySQL documentation team is not responsible for, nor do they endorse, any of the information provided here.
Sign Up Login You must be logged in to post a comment.