Base de datos: índice combinado

El índice combinado de múltiples campos está ordenado y es un índice BTree completo , con el principio más a la izquierda .

El principio más a la izquierda : la
indexación de múltiples columnas es ordenar primero la primera columna y luego ordenar la segunda columna según el orden de la primera columna, si no hay una primera columna, acceda directamente a la segunda columna, luego a la segunda Las columnas deben estar desordenadas y el acceso directo a las siguientes columnas no utilizará el índice.
La búsqueda debe comenzar desde el nodo raíz, el nodo superior corresponde al valor izquierdo y la búsqueda debe comenzar desde el nodo raíz; de lo contrario, no comienza desde el nodo raíz, y los nodos posteriores corresponden al valor inferior, que aún está fuera de servicio y necesita ser atravesado, por lo que el índice no es válido. Sí, entonces existe el principio más a la izquierda.

 

Ejemplos de índices combinados:

CREATE TABLE mytable( 
	ID INT NOT NULL, 
	username VARCHAR(16) NOT NULL, 
	city VARCHAR(50) NOT NULL, 
	age INT NOT NULL 
);

Es construir nombre, ciudad, edad en un índice:

ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age);

Al crear la tabla, la longitud de usernname es 16 y aquí se usa 10. Esto se debe a que, en circunstancias normales, la longitud del nombre no excederá de 10, lo que acelerará la velocidad de consulta del índice, pero también reducirá el tamaño del archivo de índice y mejorará la velocidad de actualización de INSERT.

Si crea un índice de una sola columna en nombre de usuario, ciudad y edad, y deja que la tabla tenga tres índices de una sola columna, la eficiencia del índice combinado al realizar consultas será muy diferente, que es mucho menor que nuestro índice combinado. Aunque hay tres índices en este momento, MySQL solo puede usar uno de ellos, que parece ser el índice de una sola columna más eficiente.

El establecimiento de dicho índice combinado es en realidad equivalente al establecimiento de los siguientes tres conjuntos de índices combinados: nombre de
    usuario, ciudad, edad nombre de  
    usuario, ciudad nombre de  
    usuario  

¿Por qué no hay un índice combinado como ciudad y edad? Esto se debe al resultado del índice de combinación MySQL "prefijo más a la izquierda".

 

162 artículos originales publicados · ganó 30 · 90,000 vistas +

Supongo que te gusta

Origin blog.csdn.net/ScorpC/article/details/104389338
Recomendado
Clasificación