top
Loading...
13.5.5.1.CACHEINDEX語法
13.5.5.1. CACHE INDEX語法
CACHE INDEX
  tbl_index_list [, tbl_index_list] ...
  IN key_cache_name
 
tbl_index_list:
  tbl_name [[INDEX|KEY] (index_name[, index_name] ...)]

CACHE INDEX語句把表索引分配給某個關鍵緩存。該語句只用于MyISAM表。

下列語句把索引從表t1, t2t3分配到名為hot_cache的關鍵緩存:

mysql> CACHE INDEX t1, t2, t3 IN hot_cache;
+---------+--------------------+----------+----------+
| Table   | Op                 | Msg_type | Msg_text |
+---------+--------------------+----------+----------+
| test.t1 | assign_to_keycache | status   | OK       |
| test.t2 | assign_to_keycache | status   | OK       |
| test.t3 | assign_to_keycache | status   | OK       |
+---------+--------------------+----------+----------+

CACHE INDEX語法允許您指定,只有來自表的特定索引應被分配給緩存。但是,當前的實施會把所有的表索引分配給緩存,所以必須指定表名稱,不能指定其它的。

被引用到CACHE INDEX語句中的關鍵緩存可以這樣創建,即通過使用一個參數設置語句或在服務器參數設置中設置其大小。舉例說明:

mysql> SET GLOBAL keycache1.key_buffer_size=128*1024;

關鍵緩存參數可以被作為一個結構化系統變量的成分進行訪問。請參見9.4.1節,“結構式系統變量”。

在您可以把索引分配給一個關鍵緩存以前,緩存必須存在:

mysql> CACHE INDEX t1 IN non_existent_cache;
ERROR 1284 (HY000): Unknown key cache 'non_existent_cache'

默認情況下,表索引被分配給在服務器啟動時被創建的主(默認)鍵緩存。當一個鍵高速緩沖被破壞時,所有被分配到此緩存中的索引會再次被分配給默認的 鍵高速緩沖。

索引的分配會對服務器產生全局性影響:如果一個客戶端把一個索引分配給一個給定的緩存,則不論什么客戶端發布查詢,本緩存都被用于所有涉及索引的查詢。

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