7.4.6.4.索引預加載
7.4.6.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語句為一個索引分配了一個鍵高速緩沖,預裝可以將索引塊放入該緩存。否則,索引被裝入默認鍵高速緩沖。