Mysql
 sql >> Database >  >> RDS >> Mysql

Quando aggiungere un indice su un campo di una tabella SQL (MySQL)?

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.

  1. Inserisci l'indice nelle colonne utilizzate nelle clausole where
  2. Inserisci l'indice nelle colonne a cui ti unisci.
  3. Cerca di non utilizzare più di 4-5 indici su colonne nella stessa tabella.

E i concetti generali che dovresti tenere a mente sono:

  1. Qualsiasi indice che utilizzi renderà più veloci le ricerche su quelle colonne.
  2. Qualsiasi indice che aggiungi rende l'inserimento in questa tabella un po' più lento.
  3. 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:

  1. 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