Pregunta sobre el índice MYSQL: ¿Cómo utilizar el índice en la consulta?
SQL gt crea la tabla test_tab (2 id INT,
3 nombre VARCHAR(10),
4 AGE INT,
5 val VARCHAR(10)6); Su empresa, que tiene una encuesta, es
SELECT * FROM test_tab donde nombre = datos de entrada externos.
Cuando no había muchos datos al principio, el efecto de implementación fue bastante bueno.
A medida que aumenta la cantidad de datos, la ejecución de esta consulta será cada vez más lenta.
Luego se crea un índice basado en el nombre.
Crea el índice idx_test4_name en test_tab (nombre)
Esto puede acelerar la consulta anterior.
Sin embargo, un día, ejecutaste el siguiente SQL y descubriste que la velocidad volvía a ser lenta.
SELECT * FROM test_tab donde edad = 25 años
¿Por qué? Porque no hay ningún índice en el campo de edad.
El índice es sólo nominal.
En otras palabras, la condición en WHERE determinará automáticamente si hay un índice disponible y, de ser así, si se debe utilizar.
Un índice de varias columnas es un índice que contiene dos campos.
Por ejemplo: cree el índice idx_test_name_age en test_tab (nombre, edad) y luego seleccione * de test_tab donde el nombre es como 'Zhang'
edad= 25
Tal una consulta podrá utilizar el índice anterior.
Índice multicolumna, otra situación utilizable es que en algunos casos se puede consultar, basta con acceder solo al índice, sin acceder a la tabla. Por ejemplo, la edad promedio de SELECTAVG(avg) proviene de test_tab donde nombre LIKE ' Zhang '
En este momento, tanto el nombre como la edad están incluidos en el índice. La consulta no necesita recuperar datos de la tabla.