2015-02-12 13 views

Odpowiedz

6

TAK, to ma znaczenie!

Indeks może być stosowane, jeśli zapytanie zawiera n lewej większość kolumn tego indeksu.

więc ze swojej pierwszej wersji indeksu MultiFieldIndex_1, to może być stosowane, jeśli

  • korzystać ze wszystkich czterech kolumn
  • Użyj kolumn A, B, C
  • stosowanie kolumn A, B
  • użycie kolumna a

ale będzie NIE kiedykolwiek uznać jeśli używasz

  • tylko kolumna D
  • kolumn C i D itp

jednak swoją drugą wersję indeksu może być wykorzystane jeśli Podaj tylko D lub D i C - ale będzie to nigdy nigdy być używany, jeśli tylko określić A i B

Tylko jeśli zawsze użycie wszystkie kolumny, które są zdefiniowane w indeksie, to kolejność, w jakiej są one zdefiniowane staje się (prawie) bez znaczenia (nadal istnieją pewne niuanse dotyczące zamawiania przez najwyższą selektywność itp., ale są o wiele mniej ważne niż fakt, że indeks nie zostanie nigdy użyty, jeśli nie określisz n kolumn znajdujących się najbardziej po lewej stronie w twoich SELECT wyciągach)

+1

Według zapytania, które masz na myśli kolumny w klauzuli WHERE mają rację? – cvraman

+0

@vvraman tak. masz rację – siddhartha

Powiązane problemy