Když máte jak LIMIT, tak ORDER BY, optimalizátor rozhodl, že je rychlejší procházet nefiltrované záznamy pomocí kláves sestupně, dokud nezíská pět shod pro zbývající kritéria. V ostatních případech jednoduše spustí dotaz jako vnořenou smyčku a vrátí všechny záznamy.
Řekl bych, že problém je v tom, že PG nepoškodí kloub distribuce různých ID, a proto je plán tak neoptimální.
Možná řešení:Předpokládám, že jste nedávno spustili ANALYZE. Pokud ne, udělejte to. To může vysvětlovat, proč jsou vaše odhadované časy vysoké i na verzi, která se rychle vrací. Pokud problém přetrvává, možná spusťte ORDER BY jako podvýběr a klaďte LIMIT ve vnějším dotazu.