新(ish)到postgres,试图提高查询性能:

SELECT avg(calendar.price)
FROM calendar
INNER JOIN listings ON calendar.listing_id = listings.id
WHERE listings.city = 'London'
GROUP BY calendar.date;

列表约为15万行,日历约为3000万行。执行查询需要20秒,。
我对listings.id、listings.city、calendar.listings和calendar.date有单独的索引。
这可以优化吗?
非常感谢!

最佳答案

在calendar.city上添加一个索引,并确保列出的id和calendar.id是相同的数据类型。如果不是,则将它们强制转换为查询中的同一类型。
如果您执行查询解释并将查询计划器的结果复制到https://explain.depesz.com/中,您可以更好地了解瓶颈可能在哪里。

关于sql - [Postgres]的平均/分组效果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44567083/

10-11 22:38
查看更多