Non è sempre chiaro dove utilizzare gli indici nelle tabelle SQL. Ma ci sono alcune regole generali che potrebbero aiutarti a decidere nella maggior parte dei casi.
- Inserisci l'indice nelle colonne utilizzate nelle clausole where
- Inserisci l'indice nelle colonne a cui ti unisci.
- Cerca di non utilizzare più di 4-5 indici su colonne nella stessa tabella.
E i concetti generali che dovresti tenere a mente sono:
- Qualsiasi indice che utilizzi renderà più veloci le ricerche su quelle colonne.
- Qualsiasi indice che aggiungi rende l'inserimento in questa tabella un po' più lento.
- Dai due precedenti. È tua responsabilità decidere quanti inserimenti e query eseguire sulle tabelle per decidere se utilizzare l'indice e su quali colonne o meno.
MODIFICA
Il commento di @AndrewLazarus è davvero importante e ho deciso di aggiungerlo alla risposta:
- Non utilizzare indici su colonne con solo pochi valori diversi. Ad esempio, una colonna che contiene uno stato, quando sono presenti solo pochi stati, o un valore booleano. Il motivo per non farlo è che l'indice non ti aiuta davvero poiché sarà diviso solo per il numero di valori e poiché ne hai solo pochi, non ci sarà alcun vantaggio reale. La tabella consumerebbe più spazio con l'indice e preformerebbe più lentamente all'inserimento, ma non otterrai prestazioni significativamente migliori durante l'esecuzione di query