Habilidades de optimización de pruebas de rendimiento, posicionamiento de consultas lentas de MySQL


Introducción

La parte más importante de las pruebas de rendimiento es la optimización del rendimiento. Cuando el tiempo de respuesta es relativamente largo o el tps no puede aumentar, puede deberse a una consulta lenta de SQL.

Registro de consultas de apertura de cuenta lenta

mysql> set global slow_query_log = on;
Query OK, 0 rows affected (0.01 sec)

Establezca el límite de tiempo de consulta lenta (siempre que el tiempo de consulta sea mayor que este valor, se registrará en el registro de consulta lenta, unidad: segundo)

mysql> show global variables like "slow_query_log_file";

Determine la ruta lenta del registro de consultas

tail -n5 E:\soft\mysql-5.7.23-winx64\data\liangf-slow.log

、

Determine el nombre del archivo de registro de consultas lentas

tail -n5 E:\soft\mysql-5.7.23-winx64\data\liangf-slow.log

Ver comando de registro

tail -n5 E:\soft\mysql-5.7.23-winx64\data\liangf-slow.log

Localice consultas lentas a través de mostrar lista de procesos

A veces, la consulta lenta se está ejecutando, lo que ha provocado que la carga de la base de datos sea demasiado alta y, debido a que la consulta lenta aún no se ha ejecutado, no se puede ver ninguna declaración en el registro de consultas lentas. En este momento, puede utilizar el comando show processlist para determinar la consulta lenta que se está ejecutando. show processlist muestra qué subprocesos se están ejecutando. Si tiene permiso de PROCESO, puede ver todos los hilos. De lo contrario, solo podrá ver los hilos de la sesión actual.

Expansión del conocimiento: Si no se usa la palabra clave FULL, solo los primeros 100 caracteres de cada oración se muestran en el campo de información. Si desea ver el contenido completo de la oración, puede usar la modificación completa (mostrar lista de procesos completa).

Aquí hay una explicación de los parámetros clave de los resultados anteriores:

Hora: indica el tiempo de ejecución

Información: representa declaraciones SQL

Aquí podemos juzgar si es SQL lento por su tiempo de ejecución (Time).

EXLPAIN análisis consulta lenta

Analizar la eficiencia de ejecución de SQL es una forma importante de optimizar SQL. A través de los dos métodos mencionados anteriormente, luego de ubicar las sentencias de consulta lentas, comenzaremos a analizar la eficiencia de ejecución de SQL. Podemos analizarlo a través de herramientas de diagnóstico como explicar, mostrar perfil y rastrear . Consulta lenta.

Explicar puede obtener el plan de ejecución de la declaración SQL en MySQL, como si la declaración usa la consulta asociada, si se usa el índice, el número de filas escaneadas, etc. Puede ayudarnos a elegir mejores índices y escribir mejor SQL. Cómo usarlo: simplemente agregue explicar delante de la declaración de consulta y ejecútelo.

Cree una tabla de prueba e inserte algunos datos para probar:

#create table
CREATE TABLE `test_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL,
`d` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_a` (`a`),
KEY `idx_b_c` (`b`,`c`)
) ENGINE=InnoDB CHARSET=utf8mb4;

# insert data proc
DELIMITER //
CREATE PROCEDURE insert_test_data()
BEGIN
 DECLARE i INT;
 SET i=1;
 WHILE(i<=160000) DO
 INSERT INTO test_table (a,b,c,d) VALUES (i,i,i,i);
 SET i=i+1;
END WHILE;
END //
# exec proc
CALL insert_test_data();

Creamos 3 índices: PRIMARY KEY ( id), índice agrupado KEY idx_a( a), índice no agrupado KEY idx_b_c( b, c) índice no agrupado d la columna no creó un índice

Conclusión

En muchos casos, si no tienes permisos de base de datos, no importa, puedes pedir ayuda de operación y mantenimiento o desarrollo.

¡Soy una mujer de prueba en el lugar de trabajo! Acabo de terminar el tutorial de prueba, lo compartiré nuevamente. Los probadores que estén interesados ​​en pruebas automatizadas de Python, automatización web, automatización de interfaces, automatización de terminales móviles, intercambio de experiencias de entrevistas, etc., pueden seguir la cuenta pública de WeChat:[Tiras picantes tristes], ¡Obtenga la información de la entrevista del ingeniero de pruebas de software de Dachang! Mi grupo de intercambio de aprendizaje: el grupo 902061117 tiene expertos técnicos para comunicarse y compartir juntos ~

Si el artículo es útil para ti, por favor, hazme una fortuna y dame un Me gusta. Gracias por tu apoyo. Tus Me gusta son mi motivación para la actualización continua.

Lectura recomendada:

¿Qué tipo de persona es adecuada para las pruebas de software?

Hablando de empezar de una pequeña empresa a una gran fábrica, ¿qué hice bien?

¿Quiere cambiar a las pruebas de software? Ven a ver si eres apto

Desde el autoaprendizaje hasta el trabajo en pruebas de software, ¿cómo se debe realizar el aprendizaje de las pruebas de software?

¿Cómo redactar un currículum vitae de un ingeniero de pruebas de software? -1.000 plantillas de currículum vitae de un ingeniero de pruebas de software (currículum real) que se han contratado con éxito

Supongo que te gusta

Origin blog.csdn.net/weixin_50271247/article/details/115248439
Recomendado
Clasificación