Ajuste de Mysql: comprensión profunda de la estructura de datos subyacente y el algoritmo del índice Mysql

1. La naturaleza de la indexación

Los índices son estructuras de datos ordenadas que ayudan a Mysql a obtener datos de manera eficiente. La estructura de datos subyacente del índice Mysql utiliza el árbol B+
Insertar descripción de la imagen aquí

  • Un nodo en el árbol B+ se almacena en una página y el tamaño de una página es de aproximadamente 16 KB
  • Los nodos que no son hoja no almacenan datos, solo índices (redundantes) y se pueden colocar más índices
  • Los nodos hoja contienen todos los campos de índice
  • Los nodos hoja están conectados con punteros para mejorar el rendimiento del acceso por intervalos.
show global status like 'innodb_page_size';

Insertar descripción de la imagen aquí

Correspondencia entre tablas y archivos de bases de datos.

Insertar descripción de la imagen aquí

2. Implementación del índice.

Implementación del índice del motor de almacenamiento MyISAM
Insertar descripción de la imagen aquí

El índice se coloca en el archivo MYI, el archivo MYD y el archivo de índice MyISAM y el archivo de datos están separados. (La clave principal de MyISam es un índice no agrupado)

Implementación del índice del motor de almacenamiento InnoDB

  • El archivo de datos de tabla (ibd) en sí es un archivo de estructura de índice organizado según el árbol B+
  • Índice agrupado: los nodos hoja protegen registros de datos completos
  • ¿Por qué se recomienda que las tablas InnoDB establezcan una clave primaria ( 由InnoDB下数据的存储情况就可以知道为什么要建立索引) y recomienden un índice de incremento automático de números enteros ( 整型索引在排序和存储方面都有优势,自增索引在构建B+树时可以减少结点分裂操作的次数,提高B+树构建的效率) ?
  • ¿Por qué todos los nodos hoja de la estructura de clave no principal almacenan el valor de la clave principal en lugar de los datos en sí?
    Respuesta: Es para mantener la coherencia de los datos y ahorrar espacio de almacenamiento.

Insertar descripción de la imagen aquí

3. Índice conjunto (más utilizado en la práctica)

Estructura del índice sindicalInsertar descripción de la imagen aquí

¿Cómo se clasifica el índice conjunto subyacente?
Respuesta: Se ordenará en el orden en que se crea el índice. Si el primer campo se puede ordenar, no es necesario considerar los campos posteriores. Si hay varios datos con la misma primera columna de índice, entonces los datos ser ordenado Luego use el segundo índice para ordenar, y así sucesivamente hasta que se complete la clasificación. (Este es también el principio de la regla del prefijo más a la izquierda)

Supongo que te gusta

Origin blog.csdn.net/qq_43456605/article/details/133070554
Recomendado
Clasificación