更新时间:2022-07-29 GMT+08:00
REINDEX
功能描述
为表中的数据重建索引。
在以下几种情况下需要使用REINDEX重建索引:
注意事项
REINDEX DATABASE和SYSTEM这种形式的重建索引不能在事务块中执行。
语法格式
- 重建普通索引。
1
REINDEX { INDEX | TABLE | DATABASE | SYSTEM } name [ FORCE ];
- 重建索引分区。
1 2
REINDEX { TABLE } name PARTITION partition_name [ FORCE ];
参数说明
- INDEX
重新建立指定的索引。
- TABLE
重新建立指定表的所有索引,如果表有从属的"TOAST"表,则这个表也会重建索引。
- DATABASE
重建当前数据库里的所有索引。共享系统目录上的索引也会被处理。这种形式的REINDEX不能在事物块内执行。
- SYSTEM
在当前数据库上重建所有系统表上的索引。不会处理在用户表上的索引。
- name
需要重建索引的索引、表、数据库的名称。表和索引可以有模式修饰。
REINDEX DATABASE和SYSTEM只能重建当前数据库的索引,所以name必须和当前数据库名称相同。
- FORCE
无效选项,会被忽略。
- partition_name
需要重建索引的分区的名字或者索引分区的名字。
取值范围:
- 如果前面是REINDEX INDEX,则这里应该指定索引分区的名字;
- 如果前面是REINDEX TABLE,则这里应该指定分区的名字;
REINDEX DATABASE和SYSTEM这种形式的重建索引不能在事务块中执行。
示例
重建一个单独索引:
1 |
REINDEX INDEX tpcds.tpcds_customer_index1;
|
重建表tpcds.customer_t1上的所有索引:
1 |
REINDEX TABLE tpcds.customer_t1;
|
父主题: DDL语法