Optimisation des tests de performance - Positionnement des compétences de requête lente MySQL


introduction

La partie la plus importante des tests de performances est l'optimisation des performances. Lorsque le temps de réponse est relativement long ou que le tps ne peut pas augmenter, cela peut être dû à une requête SQL lente.

Journal des requêtes d'ouverture de compte lent

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

Définissez la limite de temps de requête lente (tant que le temps de requête est supérieur à cette valeur, il sera enregistré dans le journal de requête lente, unité: seconde)

mysql> show global variables like "slow_query_log_file";

Déterminer le chemin du journal des requêtes lentes

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

、

Déterminer le nom du fichier journal des requêtes lentes

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

Commande Afficher le journal

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

Localisez les requêtes lentes via show processlist

Parfois, la requête lente est en cours d'exécution, ce qui a entraîné une charge de base de données trop élevée, et comme la requête lente n'a pas encore été exécutée, aucune instruction n'est visible dans le journal des requêtes lentes. À ce stade, vous pouvez utiliser la commande show processlist pour déterminer la lenteur de la requête en cours d'exécution. show processlist montre quels threads sont en cours d'exécution. Si vous disposez de l'autorisation PROCESS, vous pouvez voir tous les threads. Sinon, vous ne pouvez voir que les fils de la session en cours.

Extension des connaissances: si le mot clé FULL n'est pas utilisé, seuls les 100 premiers caractères de chaque phrase sont affichés dans le champ d'informations. Si vous souhaitez voir l'intégralité du contenu de la phrase, vous pouvez utiliser la modification complète (afficher la liste complète des processus).

Voici une explication des paramètres clés des résultats ci-dessus:

Heure: indique l'heure d'exécution

Info: représente les instructions SQL

Ici, nous pouvons juger s'il s'agit d'un SQL lent par son temps d'exécution (Time).

Requête lente d'analyse EXLPAIN

L'analyse de l'efficacité de l'exécution SQL est un moyen important d'optimiser SQL. Grâce aux deux méthodes mentionnées ci-dessus, après avoir localisé les instructions de requête lentes, nous commencerons à analyser l'efficacité de l'exécution SQL. Nous pouvons l'analyser à l'aide d'outils de diagnostic tels que l'explication, l'affichage du profil et le suivi. . Requête lente.

Explain peut obtenir le plan d'exécution de l'instruction SQL dans MySQL, par exemple si l'instruction utilise la requête associée, si l'index est utilisé, le nombre de lignes analysées, etc. Peut nous aider à choisir de meilleurs index et à écrire un meilleur SQL. Comment utiliser: ajoutez simplement Expliquer devant l'instruction de requête et exécutez-le.

Créez une table de test et insérez des données pour les tests:

#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();

Nous avons créé 3 index: PRIMARY KEY ( id), clustered index KEY idx_a( a), non-clustered index KEY idx_b_c( b, c) non-clustered index d la colonne n'a pas créé d'index

Conclusion

Dans de nombreux cas, si vous ne disposez pas des autorisations de base de données, cela n'a pas d'importance. Vous pouvez demander de l'aide à l'exploitation, à la maintenance ou au développement.

Je suis une testeuse sur le lieu de travail! Je viens de terminer le tutoriel de test, je vais le partager à nouveau. Les testeurs intéressés par les tests automatisés python, l'automatisation Web, l'automatisation des interfaces, l'automatisation des terminaux mobiles, l'échange d'expériences d'entrevue, etc., peuvent suivre le compte public WeChat:[Bandes épicées tristes], Obtenez les informations d'entretien de l'ingénieur de test logiciel de Dachang! Mon groupe d'échange d'apprentissage: le groupe 902061117 a des experts techniques pour communiquer et partager ensemble ~

Si l'article vous est utile, n'hésitez pas à me faire fortune et à m'en donner un. Merci pour votre soutien. Vos goûts sont ma motivation pour une mise à jour continue.

Lecture recommandée:

Quel type de personne convient aux tests de logiciels?

Parlant de passer d'une petite entreprise à une grande usine, qu'est-ce que j'ai fait de bien?

Vous souhaitez passer aux tests logiciels? Venez voir si vous êtes apte

De l'auto-apprentissage au travail dans les tests de logiciels, comment l'apprentissage des tests de logiciels doit-il être effectué?

Comment rédiger une expérience de projet de CV d'ingénieur de test logiciel? -1000 modèles de CV d'ingénieur de test logiciel (CV réel) qui ont été recrutés avec succès

Je suppose que tu aimes

Origine blog.csdn.net/weixin_50271247/article/details/115248439
conseillé
Classement