Un altro punto importante da considerare è questo: un indice composto (composto da più colonne) verrà utilizzato solo se si fa riferimento alle colonne n più a sinistra (ad esempio in un WHERE
clausola)
Quindi, se si dispone di un indice composto singolo su
(UserID, UserName, UserEmail)
allora questo indice potrebbe essere utilizzato nei seguenti scenari:
- quando siete alla ricerca di
UserID
sola (utilizzando solo la colonna più a sinistra 1 - UserID
)
- quando sei alla ricerca di
UserID
e UserName
(utilizzando i 2 più a sinistra colonne)
- quando siete alla ricerca di tutte le tre colonne
Ma questo unico indice composto sarà mai essere in grado di essere utilizzato per le ricerche su
- solo
UserName
- è la seconda colonna nell'indice e quindi questo indice non può mai essere utilizzato
- solo
UserEmail
- e 'la terza colonna nell'indice e quindi questo indice non può mai essere utilizzato
Ju st ricordo che - solo perché una colonna fa parte di un indice non significa necessariamente che la ricerca su quella singola colonna sarà supportata e accelerata da quell'indice!
Quindi, se i vostri modelli di utilizzo e l'applicazione realmente bisogno per cercare UserName
e/o UserEmail
da solo (senza fornire altri valori di ricerca), allora si necessario creare indici separati su queste colonne - solo un singolo composto lo farà non hanno alcun vantaggio.
fonte
2012-12-26 10:12:14