11.12. 检查索引用法

尽管 PostgreSQL 中的索引不需要维护或调整,但检查实际查询工作负载实际使用了哪些索引仍然很重要。使用EXPLAIN命令可以检查单个查询的索引使用情况;其在Section 14.1中说明了此应用。如Section 28.2中所述,还可以收集有关正在运行的服务器中索引使用情况的总体统计信息。

很难制定确定要创建哪些索引的通用过程。前面各节的示例中显示了许多典型情况。通常需要进行大量实验。本节的其余部分为此提供了一些提示:

使用非常小的测试数据集尤其致命。虽然从 100000 行中选择 1000 行可能是索引的候选对象,但在 100 行中选择 1 行几乎是不可能的,因为 100 行可能适合单个磁盘页面,并且没有计划可以胜任 Sequences 读取 1 个磁盘页面的计划。 。

编写测试数据时也要小心,这在应用程序尚未投入生产时通常是不可避免的。非常相似,完全随机或按排序 Sequences 插入的值会使统计信息偏离真实数据的分布。

如果您没有成功调整成本以使其更合适,那么您可能必须诉诸于强制强制使用索引。您可能还需要与 PostgreSQL 开发人员联系以研究该问题。

上一章 首页 下一章