23.2. 经常重建索引

有时候我们值得用 REINDEX 命令周期性重建索引。

回收再利用已经成为完全空的B-树索引页。然而,仍然是一个低效利用空间的可能性: 如果所有,但页面上的几个索引键已被删除,页面保持分配。因此,使用模式,其中大多数,但不是所有的,在每个范围内的键最终被删除, 会看到较差的空间使用。对于这样的使用模式,建议定期重建索引。

对于非 B-tree 索引的膨胀可能还没有很好地定量分析。在使用非 B-tree 索引的时候保持对索引的物理尺寸的监控是个很好的主意。

还有,对于 B-tree 索引,一个新建立的索引从某种意义上比更新了多次的 访问起来要快,因为在新建立的索引上,逻辑上连接的页面通常物理上也 连接在一起(这样的考虑目前并不适用于非 B-tree 索引)。仅仅从提高访问 速度角度出发,可能我们也值得周期性的重建索引。