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

作者:mysql.com
來源:http://dev.mysql.com/doc/refman/5.1/zh/optimization.html
北斗有巢氏 有巢氏北斗