在PostgreSQL中可以使用ANALYZE语句来收集表的统计数据。但是,我不想把这些数据实际插入到表中,我只是需要评估一些查询的成本,有没有在PostgreSQL中手动指定表的统计数据而不实际插入数据的方法?
最佳答案
我认为您正在混淆 ANALYZE
和 EXPLAIN ANALYZE
。有不同的东西。
如果您想要在不应用更改的情况下查询成本和时间,您唯一真正的选择是开始事务,在 EXPLAIN ANALYZE
下执行查询,然后 ROLLBACK
.
这仍然执行查询,这意味着:
- 消耗 CPU 时间和 I/O
- 在此期间仍会获取并持有锁
- 新行实际上写入表和索引,但从未标记为可见。它们在下一个
VACUUM
中被清除。
关于sql - PostgreSQL中如何手动更新表的统计数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21013352/