描述

该语句用来创建索引。索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构。其作用主要在于提高查询的速度,降低数据库系统的性能开销。

格式

  1. CREATE [UNIQUE] INDEX indexname
  2.      ON tblname (index_col_name,...)
  3. [index_type] [index_options]
  4. index_type:
  5. USING BTREE
  6. index_options:
  7. index_option [index_option…]
  8. index_option:
  9. GLOBAL | LOCAL
  10. | COMMENT 'string'
  11. | COMPRESSION [=] {NONE | LZ4_1.0 | LZO_1.0 | SNAPPY_1.0 | ZLIB_1.0}
  12. | BLOCK_SIZE [=] size
  13. | STORING(columname_list)
  14. | VISIBLE | INVISIBLE
  15. index_col_name:
  16. colname [(length)] [ASC | DESC]
  17. columname_list:
  18. colname [, colname…]

参数解释

参数

描述

indexname

指定要创建的索引名称。

tblname

指过索引所属的表名。

index_col_name

指定索引的列名,每个列名后都支持 ASC(升序),不支持 DESC(降序)。默认为升序。

建立索引的排序方式为:首先以 index_col_name 中第一个列的值排序;该列值相同的记录,按下一列名的值排序;以此类推。

index_type

索引类型,只支持 USING BTREE,以 B 树为索引。

UNIQUE

指定为唯一索引。

index_option

指定索引选项,多个 index_option 以空格分隔。

GLOBAL | LOCAL

指定该索引是全局索引或局部索引,默认是 GLOBAL

COMMENT

指定注释。

COMPRESSION

指定压缩算法。

BLOCK_SIZE

指定微块大小。

STORING

表示索引表中冗余存储某些列,以提高系统查询性能。

示例

  1. 执行以下命令,创建表 test。
  1. obclient> CREATE TABLE test (c1 int primary key, c2 VARCHAR(10));
  1. 执行以下命令,创建表 test 的索引。
  1. obclient> CREATE INDEX test_index ON test (c1, c2 ASC);
  1. 执行以下命令,查看表 test 的索引。
  1. obclient> SHOW INDEX FROM test;
  2. +-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+
  3. | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
  4. +-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+
  5. | test | 0 | PRIMARY | 1 | c1 | A | NULL | NULL | NULL | | BTREE | available | | YES |
  6. | test | 1 | test_index | 1 | c1 | A | NULL | NULL | NULL | | BTREE | available | | YES |
  7. | test | 1 | test_index | 2 | c2 | A | NULL | NULL | NULL | YES | BTREE | available | | YES |
  8. +-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+
  9. 3 rows in set (0.05 sec)