试图获取数百万条记录的数据时,PostgreSQL数据库变慢。我尝试过使用材料化视图,但是性能非常快,但是无法提供实时数据。
我也在使用聚合ex。总和,计数,按子句分组等等...
SELECT offer_id as off_id,
COUNT(distinct ip) as hosts,
COUNT(distinct click_id) as clicks
FROM offer_affiliate_stats
WHERE
created_dt >= '2019-06-01'
AND
created_dt <= '2019-06-30'
GROUP BY off_id;
我尝试使用材料化视图。
索引应用于ID,created_dt,click_id
我的输出应该是这样的:
off_id | 79
hosts | 4
clicks | 4
offer_name | "Testing Javelin"
offer_id |
total_conversions |
total_income |
optimised_count |
optimised_income |
approved_income |
approved_conversions |
declined_income |
declined_conversions |
total_payout |
实际上,即使不使用 distinct 关键字,它也可以正常工作,但是当我使用 distinct 时,它会花费很长时间。
答案 0 :(得分:0)
您应该配置数据库吗?
您会看到以下链接:https://www.postgresql.org/docs/current/runtime-config-resource.html
特别是Single[Async]
的默认值为4MB。您可以增加到100MB。
您将代码更改为:
work_mem