1. Einführung in den ImplementierungsplanEin Ausführungsplan bezieht sich auf die spezifische Ausführungsmethode einer SQL-Anweisung, nachdem sie vom MySQL-Abfrageoptimierer optimiert wurde. MySQL stellt uns die EXPLAIN-Anweisung zur Verfügung, um relevante Informationen über den Ausführungsplan zu erhalten. Es ist zu beachten, dass die EXPLAIN-Anweisung die zugehörigen Anweisungen nicht tatsächlich ausführt, sondern die Anweisungen über den Abfrageoptimierer analysiert, die optimale Abfragelösung findet und die entsprechenden Informationen anzeigt. Ausführungspläne werden normalerweise in der SQL-Leistungsanalyse, -Optimierung und anderen Szenarien verwendet. Durch die Erläuterung der Ergebnisse können Sie Informationen wie die Abfragereihenfolge von Datentabellen, den Operationstyp von Datenabfrageoperationen, welche Indizes getroffen werden können, welche Indizes tatsächlich getroffen werden und wie viele Datensatzzeilen in jeder Datentabelle abgefragt werden, erfahren. Erläutern Sie, dass Ausführungspläne die Anweisungen SELECT, DELETE, INSERT, REPLACE und UPDATE unterstützen. Wir verwenden es im Allgemeinen, um ausgewählte Abfrageanweisungen zu analysieren. 2. Ausführungsplan in der PraxisWerfen wir einen kurzen Blick auf den Ausführungsplan für die nächste Abfrageanweisung: mysql> erklären Sie SELECT * FROM dept_emp WHERE emp_no IN (SELECT emp_no FROM dept_emp GROUP BY emp_no HAVING COUNT(emp_no)>1); +----+----------+----------+---------+---------+-------+-----------------+---------+---------+---------+----------+----------+-------------+ | ID | Auswahltyp | Tabelle | Partitionen | Typ | mögliche Schlüssel | Schlüssel | Schlüssellänge | Ref. | Zeilen | gefiltert | Extra | +----+----------+----------+---------+---------+-------+-----------------+---------+---------+---------+----------+----------+-------------+ | 1 | PRIMARY | dept_emp | NULL | ALL | NULL | NULL | NULL | NULL | 331143 | 100,00 | Verwenden von „where“ | | 2 | UNTERABFRAGE | dept_emp | NULL | Index | PRIMARY,dept_no | PRIMARY | 16 | NULL | 331143 | 100,00 | Index wird verwendet | +----+----------+----------+---------+---------+-------+-----------------+---------+---------+---------+----------+----------+-------------+ Wie Sie sehen, gibt es in den Ausführungsplanergebnissen 12 Spalten. Die Bedeutung der einzelnen Spalten ist in der folgenden Tabelle zusammengefasst:
Schauen wir uns einige wichtige Spalten im Ausführungsplan an: Ausweis:SELECT-Kennung. Dies ist die Ordnungszahl des SELECT in der Abfrage. Der Wert kann NULL sein, wenn die Zeile auf das Vereinigungsergebnis anderer Zeilen verweist. Wenn die IDs gleich sind, erfolgt die Ausführungsreihenfolge von oben nach unten. Wenn die IDs unterschiedlich sind, gilt: Je größer der ID-Wert, desto höher die Priorität und desto früher wird die Ausführung durchgeführt. Typ auswählen:Der Typ der Abfrage. Übliche Werte sind:
Tisch:Gibt den Tabellennamen an, der für die Abfrage verwendet wird. Jede Zeile hat einen entsprechenden Tabellennamen. Neben normalen Tabellen kann der Tabellenname auch die folgenden Werte haben:
Typ:Der Typ der Abfrageausführung, der beschreibt, wie die Abfrage ausgeführt wird. Die Reihenfolge aller Werte vom besten zum schlechtesten ist: System > const > eq_ref > ref > Volltext > ref_or_null > Index_Merge > eindeutige Unterabfrage > Index_Unterabfrage > Bereich > Index > ALLE Die spezifischen Bedeutungen einiger gängiger Typen sind wie folgt:
mögliche Schlüssel:Die Spalte „possible_keys“ gibt die möglichen Indizes an, die MySQL bei der Ausführung der Abfrage verwenden kann. Wenn diese Spalte NULL ist, bedeutet dies, dass kein Index vorhanden ist, der verwendet werden kann. In diesem Fall müssen Sie die in der WHERE-Klausel verwendeten Spalten überprüfen, um festzustellen, ob Sie die Abfrageleistung verbessern können, indem Sie einer oder mehreren dieser Spalten Indizes hinzufügen. Schlüssel:Die Schlüsselspalte gibt den tatsächlich von MySQL verwendeten Index an. Wenn NULL, wird der Index nicht verwendet. Schlüssellänge:Die Spalte key_len gibt die maximale Länge des von MySQL tatsächlich verwendeten Indexes an; bei Verwendung eines gemeinsamen Indexes kann es sich um die Summe der Längen mehrerer Spalten handeln. Je kürzer, desto besser, solange es den Anforderungen entspricht. Wenn die Spalte „key“ NULL anzeigt, zeigt die Spalte „key_len“ ebenfalls NULL an. Reihen:Die Spalte „Zeilen“ stellt eine grobe Schätzung der Anzahl der zu findenden Datensätze oder zu lesenden Zeilen basierend auf Tabellenstatistiken und Auswahlbedingungen dar. Je kleiner der Wert, desto besser. Extra:Diese Spalte enthält zusätzliche Informationen darüber, wie MySQL die Abfrage analysiert. Diese Informationen können Ihnen dabei helfen, genauer zu verstehen, wie MySQL die Abfrage ausführt. Gängige Werte sind:
Hier eine Erinnerung: Wenn die Spalte „Extra“ „Using Filesort“ oder „Using Temporary“ enthält, kann es zu MySQL-Leistungsproblemen kommen und dies sollte so weit wie möglich vermieden werden. Oben finden Sie ausführliche Informationen zum Erlernen des MySQL-Ausführungsplans. Weitere Informationen zum MySQL-Ausführungsplan finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Docker erstellt eine Jenkins+Maven-Plattform zum Erstellen und Bereitstellen von Code
>>: 9 großartige JavaScript-Framework-Skripte zum Zeichnen von Diagrammen im Web
1. Transaktionsmerkmale (ACID) (1) Atomarität. Di...
Code kopieren Der Code lautet wie folgt: <span...
Beim Ändern des Standarddatums-/Uhrzeitwerts über...
Beim Schreiben dynamischer Formulare bin ich zuvo...
getElementById kann das Objekt nicht abrufen Beim...
Es gibt viele XHTML-Tags: div, ul, li, dl, dt, dd...
Hintergrund Alle Server des Unternehmens sind gek...
Nachteile von Tabellen 1. Tabellen nehmen mehr Byt...
In diesem Artikel wird die spezifische Methode zu...
Inhaltsverzeichnis Vorwort Begründung Verfahren 1...
1. Einleitung Das Thema, ob Fremdschlüsseleinschr...
Im Projekt werden Sie auf benutzerdefinierte öffe...
Nach einer langen Zeit der Transplantation und In...
Heute zeige ich Ihnen einen Neon-Button-Animation...
<br />Dieses Tag kann eine horizontale Linie...