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