400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
400-800-0824
info@ymatrix.cn
YMatrix 文档
关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
流计算引擎
灾难恢复
系统配置参数
索引
扩展
SQL 参考
常见问题(FAQ)
重建索引。
REINDEX {INDEX | TABLE | DATABASE | SYSTEM} name
REINDEX使用存储在索引表中的数据重建索引,替换索引的旧副本。 在几种情况下可以使用REINDEX:
INDEX
TABLE
DATABASE
SYSTEM
name
REINDEX与删除索引和重新创建索引相似,因为索引内容是从头开始重建的。 但是,锁定注意事项却大不相同。 REINDEX锁定对索引的父表的写入但不锁定读取。 它还对正在处理的特定索引采取排他锁,这将阻塞该索引的读取。 相反,DROP INDEX会立即对父表加排他锁,从而阻止写入和读取。 随后的CREATE INDEX锁定写但不锁定读; 由于索引不存在,因此不会进行任何读取尝试,这意味着不会有阻塞,但读操作可能会强制进行高代价的顺序扫描。
重新索引单个索引或表要求是该索引或表的所有者。 重新索引数据库需要成为数据库的所有者(请注意,所有者可以因此重建其他用户拥有的表的索引)。 当然,超级用户可以随时重新索引任何内容。
REINDEX不会更新索引的reltuples和relpages统计信息。 要更新这些统计信息,请在重新建立索引后在表上运行ANALYZE。
如果您怀疑共享的全局系统目录索引已损坏,则只能在 YMatrix utility 模式下对它们进行索引。 共享索引损坏的典型症状是“索引不是btree”错误,否则服务器将在启动时由于依赖损坏的索引而立即崩溃。 在这种情况下,请联系 YMatrix 客户支持:info@ymatrix.cn。
重建单个索引:
REINDEX INDEX my_index;
重建表my_table上的所有索引:
REINDEX TABLE my_table;
SQL标准中没有REINDEX命令。