Uanset hvor mange indeks du har oprettet på relation, vil kun et af dem blive brugt i en bestemt forespørgsel (hvilket afhænger af forespørgsel, statistik osv.). Så i dit tilfælde ville du ikke få en kumulativ fordel ved at oprette to enkeltkolonneindekser. For at få mest muligt ud af indekset vil jeg foreslå at bruge sammensat indeks på (placering, tidsstempel).
Bemærk, at forespørgsler som ... WHERE timestamp BETWEEN smth AND smth
vil ikke bruge indekset ovenfor, mens forespørgsler som ... WHERE location = 'smth'
eller ... WHERE location = 'smth' AND timestamp BETWEEN smth AND smth
vilje. Det er fordi den første egenskab i indeks er afgørende for søgning og sortering.
Glem ikke at optræde
ANALYZE;
efter indeksoprettelse for at indsamle statistik.
Opdatering: Som @MondKin nævnt i kommentarer visse forespørgsler kan faktisk bruge flere indekser på samme relation. Forespørg for eksempel med OR
klausuler som a = 123 OR b = 456
(forudsat at der er indekser for begge kolonner). I dette tilfælde ville postgres udføre bitmap-indeksscanninger for begge indekser, bygge en forening af resulterende bitmaps og bruge det til bitmap-heap-scanning. Under visse forhold kan det samme skema bruges til AND
forespørgsler, men i stedet for union ville der være et kryds.