在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倍左右。
为什么成本甚至与行数都不成线性 和 为什么时间高于行数线性?