GBase 8c
其他
文章

GBase 8c 教程 (二十)日常重建索引

发表于2023-12-06 17:21:5064次浏览2个评论

在以下几种情况下,建议周期性的使用REINDEX命令重建索引:

  1. 索引崩溃,并且不再包含有效的数据;

  2. 索引变得“臃肿”,包含大量的空页或接近空页;

  3. 为索引更改了存储参数(例如填充因子),并且希望这个更改完全生效;

  4. 使用CONCURRENTLY选项创建索引失败,留下了一个“非法”索引。

语法:REINDEX [ ( VERBOSE ) ] { INDEX | TABLE | SCHEMA | DATABASE | SYSTEM } name

  • INDEX:重新创建指定的索引;

  • TABLE:重新建立指定表的所有索引,如果表有从属的"TOAST"表,则这个表也会重建索引;

  • SCHEMA:重新创建指定架构的所有索引;

  • DATABASE:重新创建当前数据库内的所有索引。共享的系统目录上的索引也会被 处理。这种形式的REINDEX不能在一个 事务块内执行;

  • SYSTEM:重新创建当前数据库中在系统目录上的所有索引。共享系统目录上的索引也被包括在内。用户表上的索引则不会被处理。这种形式的REINDEX不能在一个事务块内执行;

  • name:要被重索引的特定索引、表或者数据库的名字。索引和表名可以被模式修饰。当前,REINDEX DATABASE和 REINDEX SYSTEM只能重新索引当前数据库,因此它们的参数必须匹配当前数据库的名称。;

  • VERBOSE:在每个索引被重建时打印进度报告。

评论

登录后才可以发表评论
崔哥发表于 9个月前
先水一个
用户头像
GBase用户28017发表于 6个月前
学习一下。