文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  索引預載

10.10.2.4 索引預載

如果鍵快取中有足夠的區塊可以容納整個索引的區塊,或至少容納其非葉節點的區塊,則最好在開始使用索引之前先將索引區塊預載入鍵快取。預載可讓您以最有效率的方式將資料表索引區塊放入鍵快取緩衝區:透過依序從磁碟讀取索引區塊。

若不使用預載,區塊仍會根據查詢的需要放入鍵快取中。雖然區塊會保留在快取中,但由於有足夠的緩衝區來容納所有區塊,因此會以隨機順序而非依序從磁碟擷取。

若要將索引預載入快取中,請使用 LOAD INDEX INTO CACHE 陳述式。例如,下列陳述式會預載入資料表 t1t2 的索引節點(索引區塊)

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 陳述式將索引指派給鍵快取,則預載會將索引區塊放入該快取中。否則,索引會載入預設鍵快取中。