• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • LOAD INDEX INTO CACHE语句

    LOAD INDEX INTO CACHE
      tbl_index_list [, tbl_index_list] ...
    
    tbl_index_list:
      tbl_name
        [PARTITION (partition_list)]
        [{INDEX|KEY} (index_name[, index_name] ...)]
        [IGNORE LEAVES]
    
    partition_list: {
        partition_name[, partition_name] ...
      | ALL
    }
    

    LOAD INDEX INTO CACHE语句将表索引预加载到由显式CACHE INDEX语句为其分配的键高速缓存中,否则预加载到默认键高速缓存中。

    LOAD INDEX INTO CACHE仅适用于MyISAM表,包括分区MyISAM表。此外,分区表上的索引可以预载一个,几个或所有分区。

    所述IGNORE LEAVES改性剂导致要预装只为索引的非叶结点的块。

    IGNORE LEAVES分区MyISAM表也受支持。

    以下语句为表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       	|
    +---------	+--------------	+----------	+----------	+
    

    该语句从中预加载所有索引块t1。它仅从中预加载非叶节点的块t2

    语法LOAD INDEX INTO CACHE使您可以指定仅应预加载表中的特定索引。但是,该实现将表的所有索引都预加载到缓存中,因此,除了表名外,没有其他必要指定其他内容。

    可以在分区MyISAM表的特定分区上预加载索引。例如,在以下2条语句中,第一个语句预加载p0分区表分区的索引,第二个语句预加载分区表和同一表pt的索引:p1p3

    LOAD INDEX INTO CACHE pt PARTITION (p0);
    LOAD INDEX INTO CACHE pt PARTITION (p1, p3);
    

    要预加载table中所有分区的索引pt,可以使用以下两个语句之一:

    LOAD INDEX INTO CACHE pt PARTITION (ALL);
    
    LOAD INDEX INTO CACHE pt;
    

    刚刚显示的两个语句是等效的,发出其中一个具有完全相同的效果。换句话说,如果您希望为分区表的所有分区预加载索引,则该PARTITION(ALL)子句是可选的。

    当预加载多个分区的索引时,这些分区不必是连续的,并且您无需以任何特定顺序列出其名称。

    LOAD INDEX INTO CACHE ... IGNORE LEAVES失败,除非表中的所有索引具有相同的块大小。要确定表的索引块大小,请使用myisamchk -dv并检查Blocksize列。


    上篇:KILL语句

    下篇:RESET语句