我是 PostgreSQL 的新手。有没有办法提高以下查询的执行时间:
SELECT s.id, s.name, s.url,
(SELECT array_agg(p.url)
FROM (
SELECT url
FROM pages
WHERE site_id = s.id ORDER BY created DESC LIMIT 5
) as p
) as last_pages
FROM sites s
我还没有找到如何将LIMIT
子句插入聚合调用,作为排序。
table 中有created
( timestamp
) 和site_id
( )的索引,但是很遗憾,没有to的外键。该查询旨在返回一个站点列表,其中包含 5 个最近创建的页面的子列表。integer
pages
sites.id
pages.site_id
PostgreSQL 版本是 9.1.5。