描述
该语句用来创建索引。索引是创建在表上的,对数据库表中一列或多列的值进行排序的一种结构。其作用主要在于提高查询的速度,降低数据库系统的性能开销。
格式
CREATE [UNIQUE] INDEX indexname
ON tblname (index_col_name,...)
[index_type] [index_options]
index_type:
USING BTREE
index_options:
index_option [index_option…]
index_option:
GLOBAL | LOCAL
| COMMENT 'string'
| COMPRESSION [=] {NONE | LZ4_1.0 | LZO_1.0 | SNAPPY_1.0 | ZLIB_1.0}
| BLOCK_SIZE [=] size
| STORING(columname_list)
| VISIBLE | INVISIBLE
index_col_name:
colname [(length)] [ASC | DESC]
columname_list:
colname [, colname…]
参数解释
参数 | 描述 |
---|---|
indexname | 指定要创建的索引名称。 |
tblname | 指过索引所属的表名。 |
index_col_name | 指定索引的列名,每个列名后都支持 ASC(升序),不支持 DESC(降序)。默认为升序。 建立索引的排序方式为:首先以 |
index_type | 索引类型,只支持 |
UNIQUE | 指定为唯一索引。 |
index_option | 指定索引选项,多个 |
GLOBAL | LOCAL | 指定该索引是全局索引或局部索引,默认是 |
COMMENT | 指定注释。 |
COMPRESSION | 指定压缩算法。 |
BLOCK_SIZE | 指定微块大小。 |
STORING | 表示索引表中冗余存储某些列,以提高系统查询性能。 |
示例
- 执行以下命令,创建表 test。
obclient> CREATE TABLE test (c1 int primary key, c2 VARCHAR(10));
- 执行以下命令,创建表 test 的索引。
obclient> CREATE INDEX test_index ON test (c1, c2 ASC);
- 执行以下命令,查看表 test 的索引。
obclient> SHOW INDEX FROM test;
+-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible |
+-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+
| test | 0 | PRIMARY | 1 | c1 | A | NULL | NULL | NULL | | BTREE | available | | YES |
| test | 1 | test_index | 1 | c1 | A | NULL | NULL | NULL | | BTREE | available | | YES |
| test | 1 | test_index | 2 | c2 | A | NULL | NULL | NULL | YES | BTREE | available | | YES |
+-------+------------+------------+--------------+-------------+-----------+-------------+----------+--------+------+------------+-----------+---------------+---------+
3 rows in set (0.05 sec)