MySQL 9.0 版本資訊
如果索引鍵快取中有足夠的區塊來容納整個索引的區塊,或者至少容納對應於其非葉節點的區塊,那麼在開始使用它之前,使用索引區塊預載索引鍵快取是有意義的。預載使您能夠以最有效的方式將資料表索引區塊放入索引鍵快取緩衝區中:透過從磁碟依序讀取索引區塊。
如果沒有預載,這些區塊仍會根據查詢的需要放入索引鍵快取中。儘管這些區塊會保留在快取中,因為有足夠的緩衝區來容納所有區塊,但它們是從磁碟中隨機擷取的,而不是循序擷取的。
若要將索引預載到快取中,請使用 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
陳述式將索引指派給索引鍵快取,則預載會將索引區塊放入該快取中。否則,索引會載入預設的索引鍵快取中。