ADD INDEX

    语句用于在已有表中添加一个索引。在 TiDB 中,ADD INDEX 为在线操作,不会阻塞表中的数据读写。

    1. CREATE TABLE t1 (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, c1 INT NOT NULL);
    1. Query OK, 0 rows affected (0.11 sec)
    1. Query OK, 5 rows affected (0.03 sec)
    2. Records: 5 Duplicates: 0 Warnings: 0
    1. EXPLAIN SELECT * FROM t1 WHERE c1 = 3;
      1. +------------------------+---------+-----------+------------------------+---------------------------------------------+
      2. | id | estRows | task | access object | operator info |
      3. +------------------------+---------+-----------+------------------------+---------------------------------------------+
      4. | IndexReader_6 | 0.01 | root | | index:IndexRangeScan_5 |
      5. | └─IndexRangeScan_5 | 0.01 | cop[tikv] | table:t1, index:c1(c1) | range:[3,3], keep order:false, stats:pseudo |
      6. 2 rows in set (0.00 sec)
      • 不支持 FULLTEXTHASHSPATIAL 索引。
      • 不支持 VISIBLE/INVISIBLE 索引(目前只有 master 分支上真正支持此功能)。
      • 不支持降序索引(类似于 MySQL 5.7)。
      • 无法向表中添加 CLUSTERED 类型的 。要了解关于 CLUSTERED 主键的详细信息,请参考。