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

Quali sono i maggiori vantaggi dell'utilizzo di INDEXES in mysql?

Risposta breve:
Gli indici accelerano SELECT 's e rallenta INSERT 'S.

Di solito è meglio avere gli indici, perché velocizzano la select più di quanto non rallenti insert .

Su un UPDATE l'indice può accelerare le cose molto in alto se viene utilizzato un campo indicizzato in WHERE clausola e rallenta le cose se update uno dei campi indicizzati.

Come fai a sapere quando utilizzare un indice

Aggiungi EXPLAIN davanti al tuo SELECT dichiarazione.
In questo modo:

EXPLAIN SELECT * FROM table1 
WHERE unindexfield1 > unindexedfield2 
ORDER BY unindexedfield3

Ti mostrerà quanto lavoro dovrà fare MySQL su ciascuno dei campi non indicizzati.
Utilizzo quelle informazioni puoi decidere se vale la pena aggiungere indici o meno.

Explain può anche dirti se è meglio rilasciare e indicizzare

EXPLAIN SELECT * FROM table1 
WHERE indexedfield1 > indexedfield2 
ORDER BY indexedfield3

Se vengono selezionate pochissime righe o MySQL decide di ignorare l'indice (lo fa di tanto in tanto) allora potresti anche eliminare l'indice, perché è rallentando il tuo insert s ma non velocizzando la tua select 's.

Poi di nuovo potrebbe anche essere che la tua affermazione select non sia abbastanza intelligente.
(scusate la complessità nella risposta, stavo cercando di mantenerla semplice, ma non ci sono riuscito).

Link:
Indici MySQL:cosa sono le migliori pratiche?