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

¿Cuándo agregar un índice en un campo de tabla SQL (MySQL)?

No siempre está claro dónde usar índices en tablas SQL. Pero hay algunas reglas generales que pueden ayudarte a decidir en la mayoría de los casos.

  1. Poner índice en las columnas que se utilizan en las cláusulas where
  2. Ponga índice en las columnas que usa para unirse.
  3. Trate de no usar más de 4 o 5 índices en las columnas de la misma tabla.

Y los conceptos generales que debes tener en cuenta son:

  1. Cualquier índice que utilice hará que las búsquedas en esas columnas sean más rápidas.
  2. Cualquier índice que agregue haga que la inserción en esta tabla sea un poco más lenta.
  3. De los dos anteriores. Es su responsabilidad decidir cuántas inserciones y consultas realiza en las tablas para decidir si usar índice y en qué columnas o no.

EDITAR

El comentario de @AndrewLazarus es realmente importante y decidí agregarlo a la respuesta:

  1. No use índices en columnas con solo unos pocos valores diferentes. Por ejemplo, una columna que contiene un estado, cuando solo hay unos pocos estados, o un valor booleano. La razón para no hacerlo es que el índice realmente no te ayuda, ya que solo se dividirá por la cantidad de valores, y dado que solo tienes unos pocos, no habrá ningún beneficio real. La tabla consumiría más espacio con el índice y la preforma sería más lenta en la inserción, pero no obtendrá un mejor rendimiento significativo al consultar