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

Índices de MySQL:¿cuántos son suficientes?

La cantidad de indexación y la línea de hacer demasiado dependerán de muchos factores. En tablas pequeñas como la tabla de "categorías", por lo general no desea ni necesita un índice y, de hecho, puede perjudicar el rendimiento. El motivo es que se necesita E/S (es decir, tiempo) para leer un índice y luego más E/S y tiempo para recuperar los registros asociados con las filas coincidentes. Una excepción es cuando solo consulta las columnas contenidas en el índice.

En su ejemplo, está recuperando todas las columnas y con solo 22 filas y puede ser más rápido hacer un escaneo de tabla y ordenarlas en lugar de usar el índice. El optimizador puede/debería hacer esto e ignorar el índice. Si ese es el caso, entonces el índice solo está ocupando espacio sin ningún beneficio. Si se accede con frecuencia a su tabla de "categorías", es posible que desee considerar fijarla en la memoria para que el servidor de base de datos la mantenga accesible sin tener que ir al disco todo el tiempo.

Al agregar índices, debe equilibrar el espacio en disco, el rendimiento de las consultas y el rendimiento de la actualización y la inserción en las tablas. Puede salirse con la suya con más índices en tablas que son estáticas y no cambian mucho en comparación con las tablas con millones de actualizaciones al día. Comenzará a sentir los efectos del mantenimiento del índice en ese punto. Sin embargo, lo que es aceptable en su entorno es y solo puede ser determinado por usted y su organización.

Al realizar su análisis, asegúrese de generar/actualizar su tabla y estadísticas de índice para que pueda estar seguro de que los cálculos son precisos.