explain zeigt, wie MySQL Indizes verwendet, um Auswahlanweisungen zu verarbeiten und Tabellen zu verbinden. Es kann dabei helfen, bessere Indizes auszuwählen und optimiertere Abfrageanweisungen zu schreiben.
Die Methode zur Verwendung von EXPLAIN ist sehr einfach. Sie müssen lediglich das Schlüsselwort EXPLAIN vor der Select-Abfrageanweisung hinzufügen. Nachfolgend finden Sie ein Beispiel:
Die Bedeutung der Echodaten ist nachstehend aufgeführt:
(1) id: SELECT-Kennung, die die SELECT-Abfragesequenznummer darstellt.
(2) select_type: Typ auswählen, der die folgenden Werte hat
1) einfach Es stellt eine einfache Auswahl dar, ohne Union und Unterabfrage
2)primary 最外面的select,在有子查询的语句中,最外面的select查询就是primary。 3)union union语句的第二个或者说是后面那一个.现执行一条语句。
explain select * from uchome_space limit 10 union select * from uchome_space limit 10,10
(4) Tabelle: Zeigt an, um welche Tabelle es sich in dieser Datenzeile handelt
(5) Typ: Dies ist eine wichtige Spalte, die zeigt, welcher Typ für die Verbindung verwendet wird. Die Verbindungstypen vom besten zum schlechtesten sind const, eq_reg, ref, range, index und ALL
(6) mögliche_key s: Zeigt die Indizes an, die auf diese Tabelle angewendet werden können. Wenn leer, ist kein Index möglich. Sie können aus der WHERE-Anweisung eine entsprechende Anweisung für die entsprechende Domäne auswählen
(7) Schlüssel: Der tatsächlich verwendete Index. Wenn NULL, wird kein Index verwendet. In seltenen Fällen wählt MYSQL einen Index aus, der nicht ausreichend optimiert ist. In diesem Fall können Sie USE INDEX (Indexname) in der SELECT-Anweisung verwenden, um die Verwendung eines Index zu erzwingen, oder IGNORE INDEX (Indexname), um MYSQL zu zwingen, den Index zu ignorieren
(8 ) key_len: Die Länge des verwendeten Index. Ohne an Genauigkeit zu verlieren, je kürzer die Länge, desto besser
(9) ref: zeigt an, welche Spalte des Index verwendet wird, wenn möglich, eine Konstante
(10) Zeilen: Die Anzahl der Zeilen, von denen MYSQL glaubt, dass sie überprüft werden müssen, um die angeforderten Daten zurückzugeben.
(11)Extra: Zusätzliche Informationen darüber, wie MYSQL die Abfrage analysiert. Schlechte Beispiele sind die temporäre Verwendung und die Verwendung von Filesort, was bedeutet, dass MYSQL den Index überhaupt nicht verwenden kann und das Ergebnis darin besteht, dass der Abruf sehr langsam ist
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上
Das obige ist der detaillierte Inhalt vonTool zur Analyse der MySQL-Abfrageleistung – Erläuterung der Schlüsselwortanalyse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!