Heim >Datenbank >MySQL-Tutorial >Wie verwende ich Erklärungen zur Analyse der SQL Query -Ausführung in MySQL?
Um EXPLAIN
zur Analyse von SQL Query -Ausführung in MySQL zu verwenden, bereiten Sie das Schlüsselwort EXPLAIN
auf Ihre SQL -Abfrage vor. Dieser Befehl enthält detaillierte Informationen darüber, wie MySQL Ihre Abfrage ausführt und zeigt, wie auf Tabellen zugegriffen und verbunden sind und wie Zeilen gefiltert werden. Hier finden Sie eine Schritt-für-Schritt-Anleitung, wie Sie es verwenden:
EXPLAIN
: Hinzufügen EXPLAIN
vor Ihrer Abfrage. Wenn beispielsweise Ihre Abfrage SELECT * FROM users WHERE age > 18
, werden Sie ausführen EXPLAIN SELECT * FROM users WHERE age > 18
.EXPLAIN
in Ihrem MySQL -Client oder Tool wie PhpMyAdmin oder MySQL Workbench aus. Die Ausgabe erfolgt in tabellarischer Form. Analysieren Sie die Ausgabe : Die EXPLAIN
enthält mehrere Spalten, die Einblicke in die Abfrageausführung geben:
id
: Die Kennung der Abfrage innerhalb einer größeren Anweisung.select_type
: Der Typ der SELECT
-Operation.table
: Der Tabellenname.type
: Der Join -Typ, der angibt, wie auf die Tabelle zugegriffen wird.possible_keys
: Indizes MySQL könnte verwenden.key
: Der tatsächliche Index, der von MySQL verwendet wird.key_len
: Die Länge des verwendeten Index.ref
: Welche Spalten oder Konstanten werden mit dem Index verglichen.rows
: Die geschätzte Anzahl von Zeilen MySQL muss prüfen, um die Abfrage auszuführen.filtered
: Der Prozentsatz der von den Bedingungen gefilterten Zeilen.Extra
: Zusätzliche Informationen darüber, wie MySQL die Abfrage auflöst.Durch die Analyse dieser Komponenten können Sie den Ausführungsplan der Abfrage besser verstehen und Verbesserungsbereiche identifizieren.
Bei der Optimierung von SQL -Abfragen mithilfe der EXPLAIN
sind die folgenden Schlüsselmetriken für die Berücksichtigung von wichtigen:
system
, const
, eq_ref
, ref
, range
, index
und ALL
. Sie sollten nach Methoden anstreben, die früher in dieser Liste erscheinen.NULL
), ist dies ein Vorzeichen dafür, dass das Hinzufügen eines Index die Leistung verbessern kann.key
nicht verwendet werden, müssen Sie möglicherweise Ihre Abfrage- oder Indexdefinitionen anpassen.Using filesort
oder Using temporary
, wodurch die Engpässe auf Leistung angegeben werden können. Sie möchten diese nach Möglichkeit vermeiden.Indem Sie sich auf diese Metriken konzentrieren, können Sie Bereiche Ihrer Abfrage bestimmen, die optimiert werden müssen.
EXPLAIN
kann ein leistungsstarkes Tool bei der Identifizierung und Lösung von Leistungsproblemen in MySQL -Abfragen auf folgende Weise sein:
EXPLAIN
Sie, welche Indizes verwendet werden und welche berücksichtigt werden. Wenn die key
NULL
und possible_keys
auflistet, ist es möglicherweise an der Zeit, Ihre Indizes zu verfeinern oder Ihre Abfrage anzupassen, um sie effektiv zu verwenden.type
ALL
angezeigt wird, bedeutet dies, dass die Abfrage einen vollständigen Tabellen -Scan ausführt, der ineffizient ist. Sie sollten anstreben, die Abfrage zu ändern oder geeignete Indizes hinzuzufügen, um dies zu verbessern.type
-Spalte gibt auch den verwendeten Join -Typ an. Weniger effiziente Verbindungstypen können durch effizientere ersetzt werden, indem Indizes oder Abfragestrukturen angepasst werden.Extra
Spalte verwendet wird, oder Using temporary
Using filesort
oder Temporary, geben diese Leistung Engpässe an. Sie können sie oft beseitigen, indem Sie Indizes hinzufügen oder ändern.rows
enthält eine Schätzung der Anzahl der Zeilen, die MySQL untersucht. Wenn diese Zahl hoch ist, wird vorgeschlagen, dass Ihre Abfrage möglicherweise optimiert werden muss, um die Anzahl der gescannten Zeilen zu verringern. Indem Sie diese Probleme basierend auf der EXPLAIN
behandeln, können Sie die Leistung Ihrer Abfrage erheblich verbessern.
Basierend auf den EXPLAIN
können Sie die folgenden spezifischen Verbesserungen Ihrer SQL -Abfragen implementieren:
key
NULL
anzeigt, sollten Sie einen Index zu den in der WHERE
verwendeten Spalten JOIN
oder ORDER BY
. Wenn possible_keys
auflistet nicht verwendete Indizes, stellen Sie sicher, dass die Abfrage so strukturiert ist, dass diese Indizes effektiv verwendet werden.type
-Spalte weniger effiziente Joinentypen anzeigt, strukturieren Sie Ihre Abfrage so, dass Sie effizientere Verbindungstypen verwenden. Das Hinzufügen von Indizes für die Join -Spalten kann häufig dazu beitragen, den Join -Typ von ALL
oder range
zu eq_ref
oder ref
zu erhöhen.Extra
Spalte angibt, Using filesort
oder Using temporary
, suchen Sie nach Möglichkeiten, Ihre Abfrage zu optimieren, um diese Vorgänge zu vermeiden. Wenn Sie beispielsweise in einer Spalte sortieren, kann das Hinzufügen eines Index in dieser Spalte Using filesort
eliminieren.rows
eine hohe Zahl anzeigt, sollten Sie den Umfang Ihrer Abfrage verengen. Dies kann die Verwendung von WHERE
Bedingungen oder Umstrukturierung der Abfrage zur effektiveren Verwendung von Indizes beinhalten.EXPLAIN
befinden, sollten Sie sie als Verbindungen umschreiben oder temporäre Tabellen verwenden, um die Leistung zu verbessern. Durch die Anwendung dieser spezifischen Verbesserungen können Sie die Effizienz Ihrer SQL -Abfragen verbessern, wie sie durch die Erkenntnisse aus dem EXPLAIN
erklärt werden.
Das obige ist der detaillierte Inhalt vonWie verwende ich Erklärungen zur Analyse der SQL Query -Ausführung in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!