El artículo dice que cuando se trata de conjuntos de datos muy grandes, donde la cantidad de filas con las que debe trabajar se acerca al número de filas que hay en la tabla, usar un índice podría perjudicar el rendimiento.
En este caso, pasar por el índice perjudicará el rendimiento, siempre que necesite más datos que los que están presentes en el índice.
Para recorrer el índice, primero el motor de la base de datos tiene que leer grandes partes de la tabla de índice (es un tipo de tabla), luego para cada fila (o conjunto de filas) de este resultado, vaya al real mesa y comienza a tomar una cereza de las páginas para leer.
Si, por otro lado, solo necesita recuperar columnas de esa área que ya forma parte de la tabla de índice, entonces el motor de base de datos solo tiene que leer eso y no continuar a la tabla completa para obtener más datos.
Si termina leyendo más o cerca de la mayor parte de la tabla real en cuestión, todo el trabajo requerido para tratar con el índice podría ser más sobrecargado que solo hacer una exploración de tabla completa para comenzar.
Ahora, esto es todo el artículo está diciendo. Para la mayoría del trabajo relacionado con una base de datos, usar índices es lo correcto.
Por ejemplo, si necesita extraer un pequeño conjunto de filas, pasar por un índice en lugar de una exploración de tabla completa será mucho más rápido.
En cualquier caso, si tiene dudas, debe hacer un perfil de rendimiento para averiguar cómo se comporta su aplicación bajo diferentes tipos de cargas, y luego comenzar a ajustar, no tome un solo artículo como una bala de plata por nada.
Por ejemplo, una manera de acelerar las consultas de ejemplo que hace un recuento de la columna de la pad
en el artículo, sería la creación de un único índice que cubría tanto val
y pad
, de esta manera, el recuento sería simplemente un escaneo de índice, y no un índice-escaneo + tabla-búsqueda, y se ejecutaría más rápido que el escaneo de tabla completo.
Su mejor opción es conocer sus datos, y para experimentar, y saber cómo las herramientas que utilizan el trabajo, por lo que de hecho, aprender más acerca de los índices, pero al final, es que quien decide qué es lo mejor para tu programa
¡Ni siquiera puede respirar sin índices! –
Buen trabajo ejecutando pruebas de comparación en su propia base de datos. Cuando se trata de rendimiento, las pruebas siempre indican qué camino es más rápido. – phkahler