índice
Papel: mejorar la eficiencia de las consultas de datos
modelo de índice común
- tabla hash
- arreglo ordenado
- búsqueda en árbol
Tabla hash
se almacena como pares de valores clave, adecuados a solamente la escena consultas equivalentes.
Usando una función hash a key
ser convertido en una posición determinada, y luego value
la matriz en esta ubicación. A key
corresponden voluntad a una matriz, la matriz será más value
, value
no ordenó.
Cuando se busca una función hash se calcula por primera key
hallazgo de una matriz específica, y luego recorrer la matriz para encontrar la ubicación específica.
Un conjunto ordenado de
almacenamiento en una matriz ordenada de formularios, consultas y consultas de rango de equivalencia del rendimiento escena es muy buena, sólo se aplican a motor de almacenamiento estático.
Basta con mirar a la eficiencia de la consulta y la disposición ordenada es la mejor estructura de datos, pero, cuando se necesita para actualizar los datos de muchos problemas, que insertar un registro en el medio de todo esto tiene que mover la parte posterior grabación, el costo es demasiado alto.
Así, el índice de matriz ordenada sólo es aplicable a motores de almacenamiento estático, por ejemplo, que desea guardar todos de 2017, la población de una información de la ciudad, no se modificará estos datos.
Buscar en el árbol
en un árbol binario similar a lograr más.
- Árbol binario de búsqueda: el hijo izquierdo de cada nodo es menor que el nodo padre, el nodo padre y el hijo menor de la derecha.
- Multi-árbol: cada nodo tiene más de su hijo, el hijo de garantía entre el tamaño de izquierda a derecha.
En MySQL
, el índice se implementa en la capa de motor de almacenamiento, y no todos los mismos criterios de índice, es decir, índice de trabajo de diferentes motores de almacenamiento no son lo mismo. E incluso si una pluralidad de motor de almacenamiento del mismo índice de tipos, que puede ser diferente implementación subyacente.
InnoDB
Utilice el B+
modelo de índice de árbol, todos los datos se almacenan en el B+
árbol. Cada índice InnoDB
que corresponde a un B+
árbol, que corresponde al índice de clave principal principal B+
árbol.
- índice de clave principal: maestro correspondiente
B+
nodo de hoja de árbol se almacena en toda la fila de datos, también denominado como un índice agrupado - índice de clave no primaria: cada uno correspondiente a un índice de clave no primaria
B+
nodo hoja del árbol se almacena en el valor de clave principal, también referido como un índice secundario.
Sobre la base de la diferencia entre el índice de clave principal y el índice general de la consulta?
- Si la declaración es
select * from T where ID = 500
la pregunta clave principal que requiere sólo buscarID
árbol deB+
nodos hoja del árbol tienen que almacenar toda la fila de datos; - Si la declaración es
select * from T where k = 5
, la consulta índice general, que tendrá que buscar el árbol índice k para obtener la clave principalID
valor es 500, a la clave principalID
tiempo de búsqueda árbol del índice, este proceso se vuelve de nuevo a la mesa.
Volver al proceso de búsqueda de árbol índice de clave principal, que se llama volver a la mesa.
En otras palabras: la necesidad de un índice de clave de escaneo multi-índice de árbol consulta basada no primaria.