#CREATE INDEX
# 通用描述
CREATE INDEX用于在指定的表上创建一个索引对象。
同一用户的不同表之间索引可以重名,但同一个表的索引名称必须唯一。
UNIQUE INDEX不允许设置为DESC(降序)。
# 语句定义
create index::=
index_expr::=
index_option::=
index_type::=
# UNIQUE
该语句用于指定创建的索引为唯一索引,即索引列字段上的数值唯一。
在mysql语法模式下,对于唯一索引的列值是NULL时不做唯一性检查。因此在复合唯一索引中如果部分索引列存在NULL值,例如两个(1, NULL)不会报唯一索引冲突,允许创建唯一索引。
# index_expr
指定索引所基于的列或列表达式,多项组合指定时以,分隔。
mysql模式仅支持基于列创建BTree索引,当基于列创建HASH索引或创建函数索引时,将按照yashan模式进行解析执行,数据库正常提供服务。详细的语法要求可参考基于yashan模式CREATE INDEX。
# index_option
指定索引相关属性选项,包括KEY_BLOCK_SIZE、ALGORITHM、LOCK等,仅用于兼容,无实际含义。
# index_type
指定索引存储类型,语法上支持BTREE和HASH,实际使用过程中仅支持BTREE。
示例(单机HEAP表)
CREATE UNIQUE INDEX idx_orders_info_1 ON orders_info (id, area);
--或者带USING BTREE
CREATE INDEX idx_orders_info_1 USING BTREE ON orders_info (id, area);
--或者USING BTREE放在后面
CREATE INDEX idx_orders_info_1 ON orders_info (id, area) USING BTREE;

