PostgreSQL中如何手动更新表的统计数据

yin*_*hox 2 sql postgresql statistics performance evaluation

PostgreSQL 中可以使用ANALYZE 语句来收集表的统计数据。但是,我不想真正将这些数据插入表中,我只需要评估一些查询的成本,是否可以手动指定PostgreSQL中表的统计数据而不实际插入数据?

Cra*_*ger 5

我认为你是得过且过ANALYZEEXPLAIN ANALYZE。有不同的事情。

如果您希望在不应用更改的情况下查询成本和时间,您唯一真正的选择是开始交易,在 下执行查询EXPLAIN ANALYZE,然后ROLLBACK

这仍然执行查询,这意味着:

  • 消耗CPU时间和I/O
  • 在此期间仍会锁定并保持锁定
  • 新行实际上写入表和索引,但从未标记为可见。他们在接下来被清理干净VACUUM