MySQL- estructura de datos de índice

MySQL- estructura de datos de índice

  • Debido a la estructura de datos de índice MySQL específicas para lograr motor de almacenamiento real, así que diferentes motores de almacenamiento pueden utilizar diferentes estructuras de datos para alcanzar el índice.
  • Índice de uso común tres estructuras de datos: árbol B (también conocido como árbol B-), B + árboles , de hash .
  1. B-tree

    • Un árbol con muchas ramas equilibrado.

    • De manera significativa la reducción de un proceso intermedio cuando el historial de ubicaciones experimentó *

    • nodo

      • Cada nodo de una llave B-árbol compone de n y n + 1 puntos en el siguiente nivel de puntero nodos.
    • rango

      • Para un m-orden B-árbol, cada nodo puede tener hasta m-ésimo nodo (el número del puntero al siguiente nivel de nodos).
    • definiciones

      • Un árbol B de orden m satisfacen las siguientes condiciones:

      • (1) es un nodo de hoja o un nodo raíz, o el número de niños de entre 2 y M.

      • (2) Además del nodo raíz , todos los demás nodos en el número de niños es mayor que m/2(向大取整)menos de m.

      • (3) todos los nodos de hoja en la misma capa.

      • (4) m-1 clave de nodo ésimo tiene m punteros apuntan a los nodos secundarios.

    • buscar

      • En primer lugar, localizar una clave raíz determinado contenido en la llave (disponible de búsqueda secuencial o búsqueda binaria).
      • Si se encuentra una clave dada, buscar el éxito.
      • De lo contrario, se determina para encontrar la clave que está entre dos y Ki Ki + 1, Pi que corresponde a este intervalo de un puntero a un subárbol del nodo.
      • En este momento, el nodo continúa puntero ir a buscar Pi refiere búsqueda para encontrar, o no encuentra puntero vacío Pi.
    • Insertar

      • La inserción establecido árbol actual de orden m
      • (1) El valor de la clave para ser insertado, y para encontrar se inserta el nodo hoja.
      • (2) determinar el número del nodo actual es inferior a igual a la clave. 1-m , se satisface si los extremos, de lo contrario ir al paso 3.
      • (3) al nodo intermedio de la tecla central es dividida en partes izquierda y derecha , y luego el se inserta intermedio clave en el nodo padre , el puntero a la tecla izquierda de la mitad izquierda de la división, el puntero llave dividida a la derecha después de la mitad derecha y, a continuación, pasa a la etapa 3 determina el número de la tecla nodo padre actual del nodo excede a. 1-m .
      • 以下图的3阶B树为例插入。
    • Eliminar

      • 1. Si la clave actual que ha de suprimirse situado en el nodo no hoja, luego se cubre con la clave posterior a la tecla de borrado (Esta clave debe encontrarse en el nodo de la hoja posterior)
      • 2. quite la llave sucesor en el nodo de hoja, donde el sucesor clave, el sucesor de este nodo en el que la clave se establece en el nodo actual.
      • 3. La clave actual es mayor que el número de nodos es igual a m / 2 º (redondeado) -1 nodo hijo, extremos operación de eliminación, de lo contrario ir al paso 4.
      • Durante este nodo 4. Si la tecla es mayor que el número de hermanos m / 2 º (redondeado) -1 nodos secundarios, el nodo padre de la clave, una clave en el hermano de cambio, supresión terminar.
      • 5. De lo contrario, el nodo padre se fusionó con la tecla abajo del nodo actual y su hermano en la clave, la formación de un nuevo nodo. Dos niños de la llave original puntero en el nodo padre se convierte en un puntero niño al nuevo nodo.
      • El nodo padre se establece entonces como el nodo actual, repita el paso 3, para evitar que el número clave de nodo padre es demasiado pequeño.
      • Prestada la clave para hermanos de borrado :
      • El hermano combinado suprime :
  2. B + Árbol

    • B + árbol es un árbol B modificado, que tiene una gama más amplia de aplicaciones que el árbol-B.

    • B + tiempos de acceso nodo del árbol exceden con mucho los tiempos de acceso cuando los nodos internos que se puede lograr con una ventaja real como una alternativa.

    • Árbol al reducir el número de nodos secundarios dentro de cada nodo interno maximiza la altura de operación de equilibrado se produce con menor frecuencia, y la eficiencia incrementada. Se establece este valor para cada nodo requiere típicamente un bloque de disco completo o ocupan aproximadamente el tamaño del almacenamiento secundario.

    • definiciones

      • B + clave de nodo de hoja de árbol y la dirección de almacenamiento de claves correspondiente a las capas superiores como el nodo hoja no almacena la información de índice .
      • A B + árbol de orden m se define como sigue:
        • (1) Cada nodo m al nodo más niño (puntero que apunta nodo hijo).
        • (2) Además de la nodo raíz , cada nodo tiene al menos M / 2 meses Key , hasta el m Key .
        • (3) excepto nodos hoja todos los nodos internos tienen el mismo número y la llave en el nodo hijo . (Aquí son ambiguas, y algunos pueden ser interpretado como el número de número de clave de sub-nodo = -1, pero el mismo tal como se define de acuerdo con el presente documento Wikipedia)
        • (4) todos los nodos de hoja están a la misma altura, hoja propio nodo por el tamaño de palabra clave de pequeño a grande enlace.
    • nodo

      • nodo hijo puntero que señala de un nodo clave niño rango a los nodos que no son hojas contiene ambigüedad Se supone aquí que la tecla nodo hijo es inferior a igual a esta tecla.
      • los nodos que no son hojas correspondientes a los datos de clave no se almacena.
      • nodo hoja contiene un puntero que señala a los nodos hoja posteriores, facilitando rango de valor de recorrido.
    • buscar

      • (1) En el primero en encontrar la clave raíz incluido en los punteros a nodos secundarios que corresponden al intervalo de clave dada (disponible de búsqueda secuencial o búsqueda binaria).
      • (2) si Pi entonces el puntero correspondiente a la presencia de este nodo hijo intervalo no existe búsqueda falla.
      • (3) En este momento, el nodo se refiere a la puntero ir a buscar Pi continuar la búsqueda hasta que los nodos de hoja o Pi en un intervalo que corresponde al puntero no existe.
      • (4) Cuando Pi en el nodo de hoja, hoja nodos de encontrar si esto está incluido en esta correspondientes datos de clave se devuelve y el final de la búsqueda, de lo contrario la búsqueda falla.
      • NOTA: Si el rango de búsqueda, para encontrar el rango de la clave inicial en la cuarta etapa se lleva a cabo de acuerdo con el rango de encontrar punteros sucesores.
    • Insertar y eliminar

      • las operaciones de inserción y supresión si tienen el mismo nodo interno número del nodo hijo y la misma clave se relacionan.
      • Debido a que existe ambigüedad aquí, por supuesto que no se indique expresamente.
      • (1) no son los mismos
        • Borrar e insertar casi lo mismo que B-árbol.
      • (2) el mismo
        • Basta con insertar consideración clave cuando el rango es mayor que el nodo raíz de la última vez que una clave, esta clave debe añadirse al índice en el nodo raíz, y luego haga clic en Crear un nuevo nodo secundario hasta que el nodo hoja, y la necesidad de considerar el sub-nodo clave creada el número es demasiado pequeño y debe ser hermanos o hermanos cuestión fusión.
        • Otros procedimientos fueron los mismos inserción árbol B De manera similar, insertar, determinar el número de clave, seleccionar la estrategia apropiada para ajustar el nodo.
  3. Comparativo B-árbol y árbol B +

    • B + veces menos árboles S de disco
      • Árbol B es necesaria cada nodo para guardar la clave, sino también ahorrar a los datos correspondientes, si los datos es grande, entonces una gran cantidad de cuerpo cuando el árbol, cada una de la memoria leída de la tecla del número de disco se convierte pequeño, también lo hará el número de disco IO.
    • B + árbol fácil encontrar gama
      • B + Árbol no es propicio para la búsqueda por rango, búsquedas por rango necesitan por la que atraviesa de manera similar a la B + árbol comprende nodos hoja en los punteros sucesores, fácil de encontrar la gama.
    • árbol de la estabilidad B + velocidad de las consultas
      • clave de datos de árbol B está presente junto con el nodo en el que la capa es por lo tanto clave en el árbol no es el mismo, mientras que en B + árboles son nodos hoja, por lo que la velocidad de B + consulta árbol es más estable.
  4. índices hash

    • estructura de datos de índice hash utilizado para la tabla hash.
    • función Hash para obtener un valor hash correspondiente a la clave pasa a través de, y esto almacena datos clave y la posición correspondiente en la matriz a este valor hash.
    • Si una clave diferente para obtener el mismo valor hash (hash de colisión), la tabla de esta posición de la cremallera de la matriz.
  5. índice de árbol B de la comparación de hash / B + Árbol

    • Cuando la colisión de hash no se produce o menor impacto, índice hash correspondiente a la matriz, que es mucho más grande que un / árbol B + B-árbol de la velocidad de búsqueda.
    • El índice hash para apoyar el equivalente de menos mayor que menos apoyo.
    • índices hash no son compatibles con la gama de buscar, ordenar y por lo tanto ninguna optimización.
    • índice de Hash combina con la pluralidad de campos de hash que buscan y por lo tanto no se puede utilizar abierta.
Publicado 27 artículos originales · ganado elogios 1 · visitas 899

Supongo que te gusta

Origin blog.csdn.net/hu853996234/article/details/103931912
Recomendado
Clasificación