Ajuste de índice en MySQL SQL tuning

(1) Hablemos primero de los pasos de la afinación.

1. Utilice herramientas para descubrir SQL lento. Entre las herramientas se incluyen SkyWalking, VisualVM, JavaMelody, Alibaba Druid, etc.
2. Agregue una explicación antes de analizar SQL lento y SQL común
3. Utilice el ajuste de índice para ver el tiempo total de ejecución de SQL. Si se puede controlar a 100-200ms (valor de referencia), es un buen SQL. Por supuesto, esto debe combinarse con el uso real del sistema.

(2) Estructura de datos utilizada por el almacenamiento MySQL

1) Los índices incluyen índice B-Tree, índice hash, índice de texto completo e índice espacial
1. Árbol binario-> árbol binario balanceado-> Árbol B-> Árbol B +

La palabra clave B-Tree con datos
B + El nodo de la hoja del árbol es una lista vinculada, si hay datos en la lista vinculada del motor InnoDB, también hay un puntero y el puntero apunta a los datos

(3) Ejemplo de ajuste

1. Utilice el registro de consultas lentas de MySQL aquí
1) Primero, verifique si MySQL ha habilitado el registro de consultas lentas (está habilitado en la figura). El slow_query_log_file en la figura es la ubicación del archivo de salida del registro.

Inserte la descripción de la imagen aquí

2) Dado que no hay una tabla de datos grande disponible, solo puedo demostrar el proceso de operación en general y luego agregarlo más tarde.

Inserte la descripción de la imagen aquí
Para ajustar la columna, si el tipo es todo, generalmente ajústelo. Cuanto más pequeño sea el key_len, mejor, cuanto más pequeñas sean las filas, mejor, y cuanto más pequeño sea el filtrado, mejor.

3) Agregar índice

####### 1) Haga clic en la tabla que desee indexar, haga clic con el botón derecho y seleccione Modificar tabla
Inserte la descripción de la imagen aquí
para agregar un índice aquí. El índice agregado debe seguir al prefijo situado más a la izquierda. Si el índice se agrega delante de una consulta de rango, como a.id> 123, Entonces, el índice agregado al final es inútil.
Hacer índice de cobertura
####### 2) Agregar posición de índice
GROUP BY, ON, WHERE, LIKE, ORDER BY
más ORDER BY índice Poner el orden por campo en primer lugar es equivalente a ordenar.
Se recomienda que el campo indexado no sea nulo, si puede ser nulo, la base de datos almacenará un dato más para determinar si es nulo.
####### 3) Use straight_join al asociar tablas para establecer la tabla asociada como tabla principal

4) No se crean tantos índices como sea posible. El índice de mantenimiento de la base de datos también tiene una cierta sobrecarga. Preste atención a los índices redundantes, los índices duplicados y los índices de descarte.

Encuentre índices redundantes ... Herramientas
pt-query-digest, pt-duplicate-key-checker

Mi fuerza es limitada, si hay alguna deficiencia, espero que todos comenten y den consejos, gracias

Supongo que te gusta

Origin blog.csdn.net/A_234_789/article/details/107528894
Recomendado
Clasificación