首批通过分布式安全可靠测评,为关键业务系统打造
创建索引
更新时间:2023-07-18 14:35:50
您可以通过 CREATE INDEX 语句为表创建索引。
OceanBase 数据库支持在非分区表和分区表上创建索引,索引可以是局部索引或全局索引,也可以是唯一索引或普通索引。如果是分区表的唯一局部索引,则必须包含表分区的分区键。
本节主要介绍如何在非分区表上创建索引,分区表上索引的创建请参见 创建分区表索引 章节。
创建索引的 SQL 语法格式如下:
CREATE [UNIQUE] INDEX index_name ON table_name ( column_list ) [LOCAL | GLOBAL] [ PARTITION BY column_list PARTITIONS N ] ;
说明
索引名称在租户范围内不能重复。
index_name:索引名。UNIQUE:代表唯一索引。table_name:表名,指需要创建索引的表。column_list:指出对哪些列进行索引,多列时各列之间用逗号分隔。LOCAL:局部索引。GLOBAL:全局索引。在创建索引时如果不显式指定global或local,则默认是global。PARTITION BY column_list PARTITIONS N:指定分区方式及类型。
为非分区表创建普通索引。示例如下:
obclient> CREATE INDEX t1_name_ind ON t1(name);
Query OK, 0 rows affected (0.43 sec)
obclient> SELECT index_name,index_type,table_owner,table_name,uniqueness FROM user_indexes WHERE table_name='T1';
+--------------------------+------------+-------------+------------+------------+
| INDEX_NAME | INDEX_TYPE | TABLE_OWNER | TABLE_NAME | UNIQUENESS |
+--------------------------+------------+-------------+------------+------------+
| T1_OBPK_1585822641424088 | NORMAL | TPCC | T1 | UNIQUE |
| T1_NAME_IND | NORMAL | TPCC | T1 | NONUNIQUE |
+--------------------------+------------+-------------+------------+------------+
2 rows in set (0.02 sec)