La Red de Conocimientos Pedagógicos - Currículum vitae - Experiencia en el índice MySQL

Experiencia en el índice MySQL

Cuando utilice una base de datos en el desarrollo real, inevitablemente encontrará algunos datos de tabla grandes. Al consultar estos datos, a veces SQL será extremadamente lento. En este momento, expertos experimentados le dirán qué campos se buscan con más frecuencia y simplemente agregarán un índice.

Entonces, ¿cómo construir un índice de manera razonable? Aquí me gustaría compartir algunas de mis experiencias. Si hay algún problema, critíquelo y corríjalo.

1. No crees un índice a ciegas, analízalo primero y luego créalo.

Aunque los índices pueden mejorar enormemente el rendimiento de nuestras consultas, también debemos saber que cuando agrega, elimina o modifica, el árbol de índice también debe mantenerse. Entonces, cuantos más índices mejor, pero bajo demanda. Es mejor analizar todo el módulo una vez finalizado el desarrollo y crear un índice conjunto para la mayoría de las consultas.

2. Utilice índices federados para cubrir tantas condiciones como sea posible.

Esto significa que si hay cinco dónde y un orden por en un SQL lento, nuestro índice conjunto cubrirá estas cinco condiciones de consulta tanto como sea posible y, si es necesario, ordenar por también las cubrirá.

3. Los campos de base pequeños no requieren índices.

Esto significa que si un campo en una tabla tiene solo unos pocos valores, el índice que establezca para este campo en realidad no tiene sentido. Por ejemplo, si establece un índice, la clasificación no tiene sentido (es decir, hombres y mujeres están separados en el índice).

Por lo tanto, al establecer el índice se deben seleccionar tantos datos con una cardinalidad grande como sea posible, para que el índice se pueda utilizar al máximo.

4. Las cadenas largas pueden utilizar índices de prefijo.

Intentamos elegir tipos de campos más pequeños para los índices, como varchar(20) y varchar(256). Hay una clara brecha entre los índices creados por encima de 20 y los índices creados sobre 256 (las cadenas también lo son). largo y difícil de clasificar, por desgracia).

Por supuesto, si debes indexar varchar(256), puedes elegir los primeros 20 caracteres y colocarlos en el árbol de índice (20 aquí no es absoluto, debes elegir el carácter más pequeño que pueda distinguir el datos tanto como sea posible diseño de campo). De esta manera, el índice clave (nombre (20), edad, título) solo buscará los primeros 20 caracteres del nombre, pero el índice de prefijo no se puede aplicar para ordenar y agrupar por.

5. El diseño de índices para ordenar campos tiene menor prioridad.

Si tenemos una búsqueda por rango en SQL seguida de un campo de clasificación, entonces indexamos primero los campos de búsqueda por rango en lugar de ordenarlos primero.

6. Si se produce un SQL lento, puede diseñar un índice conjunto solo para este SQL.

Pero la optimización de SQL lento requiere un análisis paso a paso. Primero puede usar explicar para verificar los resultados del análisis de la declaración SQL y luego realizar las mejoras correspondientes en función de los resultados. Hablaremos de explicaciones la próxima vez.

PD: agregue la palabra clave explicar antes de la declaración de selección. MySQL establecerá una bandera en la consulta. La ejecución de la consulta devolverá la información del plan de ejecución en lugar de ejecutar este SQL.