私は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 です。