Heim  >  Artikel  >  Datenbank  >  Wie ist die Reihenfolge der SQL-Ausführung?

Wie ist die Reihenfolge der SQL-Ausführung?

silencement
silencementOriginal
2019-06-10 10:36:3429504Durchsuche

Wie ist die Reihenfolge der SQL-Ausführung?

Ausführungssequenz von SQL-Anweisungen

MySQL-Anweisungen sind zunächst in insgesamt 11 Schritte unterteilt, wie in der folgenden Abbildung markiert Die FROM-Operation wird immer ausgeführt und die LIMIT-Operation wird zuletzt ausgeführt. Bei jeder dieser Operationen wird eine virtuelle Tabelle generiert, die als Eingabe für die Verarbeitung verwendet wird. Diese virtuellen Tabellen sind für den Benutzer jedoch transparent, als Ergebnis wird jedoch nur die letzte virtuelle Tabelle zurückgegeben. Wenn in der Anweisung eine Klausel nicht angegeben ist, wird der entsprechende Schritt übersprungen.

Lassen Sie uns jede Phase der Abfrageverarbeitung im Detail analysieren

FORM: Für die Tabelle links und die Tabelle rechts der FROM-Tabelle berechnet das kartesische Produkt. Generieren Sie die virtuelle Tabelle VT1

EIN: Führen Sie eine EIN-Filterung für die virtuelle Tabelle VT1 durch und nur die Zeilen, die die erfüllen, werden in der virtuellen Tabelle VT2 aufgezeichnet.

JOIN: Wenn OUTER JOIN (z. B. Left Join, Right Join) angegeben ist, werden die nicht übereinstimmenden Zeilen in der beibehaltenen Tabelle als externe Zeilen zur virtuellen Tabelle VT2 hinzugefügt, was zur virtuellen Tabelle VT3, Teppich von Sub, führt - Wenn der Satz mehr als zwei Tabellen enthält, werden die Schritte 1 bis 3 für das durch die vorherige Join-Verbindung generierte Ergebnis VT3 und die nächste Tabelle wiederholt, bis alle Tabellen verarbeitet sind

WHERE: WHERE-Bedingungsfilterung durchführen virtueller Tisch VT3. Nur Datensätze, die die erfüllen, werden in die virtuelle Tabelle VT4 eingefügt.

GROUP BY: Gruppieren Sie die Datensätze in VT4 entsprechend den Spalten in der Group by-Klausel, um VT5 zu generieren.

CUBE ROLLUP: Führen Sie Cube- oder Rollup-Operationen für Tabelle VT5 aus, um Tabelle VT6 zu generieren.

HAVING: Have-Filter auf die virtuelle Tabelle VT6 anwenden. Nur Datensätze, die die erfüllen, werden in die virtuelle Tabelle VT7 eingefügt.

SELECT: Führen Sie eine Auswahloperation aus, wählen Sie die angegebene Spalte aus und fügen Sie sie in die virtuelle Tabelle VT8 ein.

DISTINCT: Datensätze in VT8 deduplizieren. Generieren Sie die virtuelle Tabelle VT9.

ORDER BY: Sortieren Sie die Datensätze in der virtuellen Tabelle VT9 nach , um die virtuelle Tabelle VT10 zu generieren.

LIMIT: Entfernen Sie die Datensätze der angegebenen Zeile und generiert die virtuelle Tabelle VT11 und gibt das Ergebnis zurück.

Schreibreihenfolge: auswählen ... von... wo.... gruppieren nach... mit... sortieren nach.. limit [offset,]

(Zeilen)

Ausführungsreihenfolge: von... wo... gruppieren nach... mit... auswählen... sortieren nach... beschränken

Das obige ist der detaillierte Inhalt vonWie ist die Reihenfolge der SQL-Ausführung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn