Inną ważną kwestią, którą należy wziąć pod uwagę, jest to, że: indeks złożony (złożony z wielu kolumn) będzie używany tylko wtedy, gdy odwołuje się do n kolumn znajdujących się najbardziej po lewej stronie (na przykład w WHERE
klauzula)
Więc jeśli masz pojedynczy indeks złożony na
(UserID, UserName, UserEmail)
czym wskaźnik ten może być stosowany w następujących przypadkach:
- gdy szukasz
UserID
sam (używając tylko lewej kolumnie 1 - UserID
)
- kiedy jesteś szukając
UserID
i UserName
(przy użyciu 2 lewej większość kolumn)
- gdy szukasz wszystkich trzech kolumn
Ale to pojedynczy wskaźnik związek będzie nigdy mogły być wykorzystywane do poszukiwań na
- tylko
UserName
- to druga kolumna w indeksie, a więc wskaźnik ten nie kiedykolwiek być używane
- tylko
UserEmail
- to trzecia kolumna w indeksie, a więc wskaźnik ten nie może nigdy być używane
Ju st pamiętasz to - tylko dlatego, że kolumna jest częścią indeksu, niekoniecznie oznacza, że samo przeszukiwanie tej pojedynczej kolumny będzie obsługiwane i przyspieszane przez ten indeks!
Więc jeśli wzory użytkowe i aplikacja naprawdę trzeba szukać na UserName
i/lub UserEmail
samodzielnie (bez świadczenia innych wartości wyszukiwania), a następnie musi utworzyć oddzielne indeksy na tych kolumnach - tylko pojedynczy związek ONE nie mają żadnej korzyści.