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.
- Poner índice en las columnas que se utilizan en las cláusulas where
- Ponga índice en las columnas que usa para unirse.
- 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:
- Cualquier índice que utilice hará que las búsquedas en esas columnas sean más rápidas.
- Cualquier índice que agregue haga que la inserción en esta tabla sea un poco más lenta.
- 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:
- 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