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

mysql troppi indici?

Recupero dei dati -- istruzioni SELECT.

Manipolazione dei dati:istruzioni INSERT, UPDATE, DELETE.

Se ritieni di voler ottenere prestazioni migliori nel recupero dei dati.

Su tabelle che vedranno una pesante manipolazione dei dati -- inserimento, aggiornamento...

Le query devono indirizzare l'ordine delle colonne quando si tratta di un indice di copertura (un indice su più di una colonna), da sinistra a destra nella definizione della colonna dell'indice. L'ordine delle colonne nell'istruzione non ha importanza, solo quello delle colonne 1, 2 e 3:un'istruzione deve avere un riferimento alla colonna 1 prima di poter utilizzare l'indice. Se è presente solo un riferimento alla colonna 2 o 3, non è possibile utilizzare l'indice di copertura per 1/2/3.

In MySQL, è possibile utilizzare un solo indice per SELECT/istruzione nella query (sottoquery/ecc sono visti come un'istruzione separata). E c'è un limite alla quantità di spazio per tabella consentita da MySQL. Inoltre, l'esecuzione di una funzione su una colonna indicizzata rende l'indice inutile - IE:

WHERE DATE(datetime_column) = ...