sql >> Base de Datos >  >> RDS >> Mysql

¿Cuáles son los mayores beneficios de usar ÍNDICES en mysql?

Respuesta corta:
Los índices aceleran SELECT 's y ralentizar INSERT 's.

Por lo general, es mejor tener índices, porque aceleran select más de lo que ralentizan insert .

En una UPDATE el índice puede acelerar las cosas muy arriba si se usa un campo indexado en WHERE cláusula y ralentiza las cosas si update uno de los campos indexados.

¿Cómo saber cuándo usar un índice?

Agregar EXPLAIN delante de tu SELECT declaración.
Así:

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

Le mostrará cuánto trabajo tendrá que hacer MySQL en cada uno de los campos no indexados.
Uso esa información puedes decidir si vale la pena agregar índices o no.

Explicar también puede decirle si es mejor colocar e indexar

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

Si se seleccionan muy pocas filas o MySQL decide ignorar el índice (lo hace de vez en cuando) entonces también podría descartar el índice, porque es ralentizando tu insert s pero no acelerando su select 's.

Por otra parte, también podría ser que su declaración de selección no sea lo suficientemente inteligente.
(Perdón por la complejidad de la respuesta, estaba tratando de mantenerlo simple, pero fallé).

Enlace:
Índices de MySQL:¿cuáles son las mejores prácticas?