为什么位图堆扫描的成本与行数不是线性的

时间:2018-09-19 20:20:26

标签: postgresql database-performance

在postgres中,我有两个analytics-explain输出的两个部分:

   ->  Bitmap Heap Scan on changegroup cg  (cost=332.95..23432.90 rows=17616 width=16) (actual time=1.728..68.845 rows=18091 loops=1)
         Recheck Cond: (issueid = 371928)
         Heap Blocks: exact=1606

   ->  Bitmap Heap Scan on changeitem ci  (cost=4439.94..87423.34 rows=205872 width=17) (actual time=65.291..4281.683 rows=208856 loops=1)
     Recheck Cond: ((field)::text = 'Flaky Count'::text)
     Heap Blocks: exact=25026

Postgres预测,尽管预测的行数超过10倍,但第二次查询的成本将比第一次查询大4倍。

第二个查询的实时时间不仅长10倍,甚至是80倍左右。

为什么成本甚至与行数都不成线性    和 为什么时间高于行数线性?

0 个答案:

没有答案