¿Por qué índice de MySQL con un árbol + B en lugar de una tabla hash?

estructura del índice particularidad Hash, su eficiencia de búsqueda es muy alta, el índice puede ser recuperada una vez colocado, a diferencia de las necesidades del índice B + árbol desde la raíz hasta el nodo de rama, y, finalmente, con el acceso a esta página muchas veces nodo de acceso IO, el índice hash la eficiencia de la consulta es mucho más alto que el índice de árbol B +.

Muchas personas pueden tener dudas, ya que la eficiencia del índice hash es mucho mayor que B + Árbol, ¿por qué no todo el uso Hash Índice y también el uso de B + Índice ree que? Todo tiene dos lados, índice hash es el mismo, aunque el índice de hash de alta eficiencia, pero el propio índice, debido a su especificidad Hash también trajo una gran cantidad de limitaciones e inconvenientes, principalmente en lo siguiente.

  1. índices hash sólo pueden cumplir con la consulta "=", "IN" y "<=>", no se puede utilizar consultas de rango.
    Puesto que la comparación de valores Hash índice hash se lleva a cabo después de la operación Hash, que sólo se puede utilizar para filtrar equivalente, basado en el rango del filtro no se puede utilizar, debido a que los valores Hash relación de tamaño después de procesar a través del algoritmo de Hash correspondiente, y no puede ser exactamente lo mismo que antes y garantizar un funcionamiento Hash.
  2. índice hash no puede ser utilizado para evitar las operaciones de clasificación de datos.
    Debido a que el índice se almacena valor Hash Hash calculado a través de la siguiente Hash, el valor Hash y la relación magnitud y valores no son necesariamente exactamente la misma que antes de la operación Hash, por lo que la base de datos no puede utilizar los datos de índice para evitar cualquier tipo de operación;
  3. índices hash no pueden utilizar parte de la consulta de clave de índice.
    Para la combinación del índice de tiempo, el índice al calcular el valor Hash Hash se calcula y se combina entonces con el valor Hash clave de índice compuesto, en lugar de calcular el valor Hash solo, el índice de búsqueda a través de la parte frontal de uno o varios de la clave de índice compuesto, el Hash índice no se pueden utilizar.
  4. índice hash en cualquier momento no puede evitar un recorrido de tabla.
    Como ya se sabe, el índice hash después de la clave de índice por la operación de hash, el valor Hash resultados de los cálculos Hash y punteros de fila correspondientes a la información almacenada en una tabla hash, debido a la presencia de las diferentes claves de índice mismo valor hash, incluso si los satisface tomar ciertas el número de registros de datos de un claves hash no se puede hacer a partir índice hash directamente consulta o para hacer las comparaciones apropiadas mediante el acceso a los datos reales en la tabla, y los resultados correspondientes.
  5. El rendimiento no necesariamente superior a la del índice de índice hash B + Árbol encontraron con grandes valores Hash son iguales.
    Para clave relativamente bajo índice de selectividad, si se crea un hash índice, entonces habrá un gran número de registros almacenados en la información de puntero asociado con un valor Hash. Tal posicionamiento va a ser muy molesto cuando uno de los registros, será un desperdicio de muchas visitas a los datos de la tabla, lo que resulta en un menor rendimiento global

En pocas palabras, índice hash es el uso de un determinado algoritmo de hash, los términos clave de los nuevos valores de hash, similar a un árbol B + no tiene que ver como paso a paso desde la raíz hasta el nodo hoja se recupera con un único algoritmo de hash se puede colocar inmediatamente a la ubicación adecuada, muy rápido.

índice de árbol B + significativamente diferentes e índices hash son:

  1. Si la consulta es equivalente, entonces el índice hash, obviamente, tiene una ventaja absoluta, porque sólo después de un algoritmo para encontrar la llave apropiada, por supuesto, esta premisa es que la clave es única. Si la clave no es único, es necesario encontrar la ubicación de la clave está presente, entonces la siguiente exploración de acuerdo con la lista hasta que encuentre los datos apropiados;
  2. Si la consulta es una zona esta vez el índice hash del todo inútil, porque ordenado originalmente clave, después de algoritmo de hash puede llegar a ser discontinua, y no hay manera de volver a utilizar la gama completa de índice consulta;
  3. Del mismo modo, no hay forma de índices hash utilizar el índice para completar el pedido, y como 'xxx%' esta parte de las consultas difusas (consultas que parcialmente oscurecido, de hecho, la esencia es la consulta rango);
  4. índices hash no son compatibles con el índice de gobierno conjunto multi-juego más a la izquierda de la columna;
  5. la eficiencia de recuperación de índice de árbol B + palabra clave es bastante regular, a diferencia del árbol B como grandes fluctuaciones, en el caso de un gran número de claves duplicadas, índice hash de la eficiencia es muy baja, debido a que hay llamada colisión de hash.
Publicado 80 artículos originales · ganado elogios 96 · vistas 360 000 +

Supongo que te gusta

Origin blog.csdn.net/Alen_xiaoxin/article/details/104753391
Recomendado
Clasificación