Po prostu proste pytanie, ale czy kolejność twojego indeksu ma znaczenie, gdy rozciąga się na wiele kolumn?Porządek indeksu dla wielu kolumn
Na przykład, biorąc zapytania:
SELECT * FROM my_table WHERE (column_1 = 1 AND column_2 = 2)
Jeśli chcę dodać indeks dla zapytania jak ta, to ma znaczenie, jeśli mój indeks jest tworzony tak:
CREATE INDEX my_index ON my_table (column_1, column_2)
Or tak:
CREATE INDEX my_index ON my_table (column_2, column_1)
Dzięki za pomoc!
W rzeczywistości może to mieć znaczenie nawet w tym przypadku. Jeśli prawie każdy wiersz ma col1 = 1, indeks najprawdopodobniej działałby lepiej, gdyby col2 był pierwszy, nawet gdy zwracasz uwagę na oba. –
Może to mieć znaczenie w podanym przykładzie, jeśli jedna kolumna ma znacznie wyższą efektywność niż druga. Najpierw umieść kolumny o wysokiej selektywności (wiele różnych wartości). – Manu
Doskonała informacja w tej odpowiedzi, aby pomóc zrozumieć, jak trafić indeksy już dostępne w systemie. – Swoop