小编abi*_*ips的帖子

如何加快postgres中大表的SUM查询速度

问题

我正在尝试在 postgres 数据库中的 SQL 视图上运行以下查询:

SELECT sum(value) FROM invoices_view;

大约有invoices_view4500 万行,整个数据库的数据大小为 40.5 GB,数据库有 61 GB RAM。

目前这个查询需要 4.5 秒,我希望它最好低于 1 秒。

我尝试过的事情

当然,我不能直接向 SQL 视图添加索引,但可以在基础表上有一个索引:

CREATE INDEX invoices_on_value_idx ON invoices (value);

我还在VACUUM ANALYZE发票表上运行了一个。

解释分析

的输出EXPLAIN ANALYZE如下:

EXPLAIN (ANALYZE, BUFFERS) SELECT sum(value) FROM invoices_view;
Finalize Aggregate  (cost=1514195.47..1514195.47 rows=1 width=32) (actual time=5102.805..5102.806 rows=1 loops=1)
  Buffers: shared hit=14996 read=1446679
  I/O Timings: read=3235.147
  ->  Gather  (cost=1514195.16..1514195.47 rows=3 width=32) (actual time=5102.716..5109.229 rows=4 loops=1)
        Workers Planned: 3
        Workers Launched: …
Run Code Online (Sandbox Code Playgroud)

sql database postgresql

8
推荐指数
1
解决办法
9034
查看次数

标签 统计

database ×1

postgresql ×1

sql ×1