Om du antar att du frågar om den vanliga "index hinting"-funktionen som finns i många databaser, tillhandahåller PostgreSQL inte en sådan funktion. Detta var ett medvetet beslut som togs av PostgreSQL-teamet. En bra översikt över varför och vad du kan göra istället hittar du här. Anledningarna är i grunden att det är ett prestandahack som tenderar att orsaka fler problem senare när dina data ändras, medan PostgreSQL:s optimerare kan omvärdera planen baserat på statistiken. Med andra ord, vad som kan vara en bra frågeplan idag kommer förmodligen inte att vara en bra frågeplan för alla tider, och indextips tvingar fram en viss frågeplan för all framtid.
Som en mycket trubbig hammare, användbar för testning, kan du använda enable_seqscan
och enable_indexscan
parametrar. Se:
- Undersöker indexanvändning
enable_
parametrar
Dessa är inte lämpliga för pågående produktionsanvändning . Om du har problem med val av frågeplan bör du se dokumentationen för att spåra problem med frågeprestanda. Ställ inte bara in enable_
params och gå iväg.
Om du inte har en mycket bra anledning att använda indexet, kan Postgres göra rätt val. Varför?
- För små tabeller är det snabbare att göra sekventiella genomsökningar.
- Postgres använder inte index när datatyperna inte matchar korrekt, du kan behöva inkludera lämpliga casts.
- Dina planerarinställningar kan orsaka problem.
Se även detta gamla nyhetsgruppsinlägg.