Maison > Article > base de données > Outil d'analyse des performances des requêtes MySQL - expliquer l'analyse des mots clés
explain montre comment MySQL utilise les index pour gérer les instructions de sélection et joindre des tables. Cela peut aider à choisir de meilleurs index et à écrire des instructions de requête plus optimisées.
La méthode d'utilisation d'explication est très simple. Il vous suffit d'ajouter le mot-clé expliquer devant l'instruction de requête select. Un exemple est donné ci-dessous :
La signification des données renvoyées est donnée ci-dessous :
(1) id : identifiant SELECT, qui est le numéro de séquence de la requête SELECT.
(2) select_type : sélectionnez le type, qui a les valeurs suivantes
1) simple Il représente une sélection simple, sans union ni sous-requête
2)primary 最外面的select,在有子查询的语句中,最外面的select查询就是primary。 3)union union语句的第二个或者说是后面那一个.现执行一条语句。
explain select * from uchome_space limit 10 union select * from uchome_space limit 10,10
(4) table : indique de quelle table concerne cette ligne de données
(5) type : Il s'agit d'une colonne importante, indiquant le type utilisé pour la connexion. Les types de connexion du meilleur au pire sont const, eq_reg, ref, range, index et ALL
(6) possible_key s : Affiche les index pouvant être appliqués à cette table. S'il est vide, aucun index n'est possible. Vous pouvez sélectionner une instruction appropriée dans l'instruction WHERE pour le domaine concerné
(7) clé : l'index réel utilisé. Si NULL, aucun index n'est utilisé. Rarement, MYSQL sélectionnera un index sous-optimisé. Dans ce cas, vous pouvez utiliser USE INDEX (nom d'index) dans l'instruction SELECT pour forcer l'utilisation d'un index ou IGNORE INDEX (nom d'index) pour forcer MYSQL à ignorer l'index
(8 ) key_len : La longueur de l'index utilisé. Sans perdre en précision, plus la longueur est courte, mieux c'est
(9) ref : montre quelle colonne de l'index est utilisée, si possible, une constante
(10) lignes : Le nombre de les lignes qui, selon MYSQL, doivent être vérifiées pour renvoyer les données demandées.
(11)Extra : informations supplémentaires sur la façon dont MYSQL analyse la requête. Les mauvais exemples sont Using Temporary et Using filesort, ce qui signifie que MYSQL ne peut pas du tout utiliser l'index, et le résultat est que la récupération sera très lente
1)Distinct:一旦MYSQL找到了与行相联合匹配的行,就不再搜索了 2)Not exists: MYSQL优化了LEFT JOIN,一旦它找到了匹配LEFT JOIN标准的行,就不再搜索了 3)Range checked for each Record(index map:#):没有找到理想的索引,因此对于从前面表中来的每一个行组合,MYSQL检查使用哪个索引,并用它来从表中返回行。 这是使用索引的最慢的连接之一 4)Using filesort: 看到这个的时候,查询就需要优化了。MYSQL需要进行额外的步骤来发现如何对返回的行排序。 它根据连接类型以及存储排序键值和匹配条件的全部行的行指针来排序全部行 5)Using index: 列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发生在对表的全部的请求列都是同一个索引的部分的时候 6)Using temporary 看到这个的时候,查询需要优化了。这里,MYSQL需要创建一个临时表来存储结果,这通常发生在对不同的列集进行ORDER BY上,而不是GROUP BY上
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!