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