PostgreSQL - 做分析是否具有与count(*)相同的性能成本?

时间:2013-11-15 20:02:36

标签: postgresql

首先,我想估算一张桌子的大小。由于我使用图形构建数据库的分析数据,因此准确计数并不重要。因此,我遇到了这个wiki,并建议使用

进行估算
SELECT reltuples FROM pg_class WHERE relname = 'table_name';

现在为了获得更新的计数,我们必须在该表上执行analyze

所以我的问题是,使用analyze获取reltuples的更新计数与执行count(*)相同吗?执行analyze与执行count(*)一样,是否会影响绩效?

1 个答案:

答案 0 :(得分:1)

运行分析的成本取决于表的采样量,具体取决于default_statistics_target或每列统计信息设置。它可能比计数(*)更快或更慢,具体取决于您的具体情况 - 实际上您无法使用我们自己的数据在您自己的系统上进行尝试和查看。

但通常情况下,如果您对估算感到满意,那么您只需使用已在那里找到的重量列表。每次重新分析表似乎都会破坏目的。