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
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
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
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
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!