规划器统计

来自 PostgreSQL wiki
跳转到导航跳转到搜索

为了使查询快速执行,PostgreSQL 查询规划器需要拥有数据库中表的准确统计信息。查看 规划器使用的统计信息使用 EXPLAIN 以获取更多相关信息。

统计信息通过运行 VACUUM ANALYZE 来更新,可以针对整个数据库或您感兴趣的表运行。从 PostgreSQL 8.1 开始,您可以使用 自动清理守护进程 自动执行此任务。这可能需要一些配置才能有效地设置,在 PostgreSQL 8.3 中,自动清理非常智能且经过良好调整,因此默认情况下已启用。

控制统计信息收集的最受欢迎的可调参数是 default_statistics_target,它可以通过 ALTER TABLE SET STATISTICS 为每个表和列设置。一般来说,有效范围是 10(默认值)到 100。较高的设置可能会导致统计信息收集过程本身拖慢性能。有关更多信息,请查看关于 更好的 default_statistics_target 的长线程 - 第 2 部分