ADD INDEX
语句用于在已有表中添加一个索引。在 TiDB 中,ADD INDEX
为在线操作,不会阻塞表中的数据读写。
CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, c1 INT NOT NULL);
Query OK, 0 rows affected (0.11 sec)
Query OK, 5 rows affected (0.03 sec)
Records: 5 Duplicates: 0 Warnings: 0
EXPLAIN SELECT * FROM t1 WHERE c1 = 3;
Query OK, 0 rows affected (0.30 sec)
+------------------------+---------+-----------+------------------------+---------------------------------------------+
| id | estRows | task | access object | operator info |
+------------------------+---------+-----------+------------------------+---------------------------------------------+
| IndexReader_6 | 0.01 | root | | index:IndexRangeScan_5 |
| └─IndexRangeScan_5 | 0.01 | cop[tikv] | table:t1, index:c1(c1) | range:[3,3], keep order:false, stats:pseudo |
2 rows in set (0.00 sec)
- 不支持
FULLTEXT
,HASH
和SPATIAL
索引。 - 目前尚不支持在一条中同时添加多个索引。
- 无法向表中添加
CLUSTERED
类型的PRIMARY KEY
。要了解关于 主键的详细信息,请参考聚簇索引。