Detaillierte Analyse der SQL-Ausführungsschritte

Detaillierte Analyse der SQL-Ausführungsschritte

Detaillierte Analyse der SQL-Ausführungsschritte

Sehen wir uns zunächst die Reihenfolge an, in der Anweisungen ausgeführt werden.

(8)wählen (9)unterscheiden A (1)von Ta (3)verbinden Tb 
(2) auf XXX (4) wobei XXX (5) nach XXX (6) gruppiert wird mit 
{Würfel|aufrollen} (7)mit XXX (10)sortieren nach XXX (11)Grenze XXX

Schauen wir uns als Nächstes die verschiedenen Phasen der Abfrageverarbeitung an:

  1. FROM führt eine kartesische Tabelle auf den linken und rechten Tabellen in der From-Klausel aus, um eine virtuelle Tabelle VT1 zu generieren.
  2. ON führt eine On-Filterung auf der virtuellen Tabelle VT1 durch und nur die Zeilen, die die Join-Bedingung erfüllen, werden in die virtuelle Tabelle VT2 eingefügt
  3. JOIN: Wenn ein äußerer Join angegeben ist, werden die nicht übereinstimmenden Zeilen in der beibehaltenen Tabelle als äußere Zeilen zur virtuellen Tabelle VT2 hinzugefügt, wodurch die virtuelle Tabelle VT3 entsteht. Wenn die From-Klausel mehr als zwei Tabellen enthält, wiederholen Sie die Schritte 1 bis 3 für VT3 und die nächste Tabelle in der von der vorherigen Verbindung generierten Ergebnistabelle, bis alle Tabellen verarbeitet sind.
  4. WHERE führt einen Where-Filter auf der virtuellen Tabelle VT3 aus und nur diejenigen, die die Bedingungen erfüllen, werden in die virtuelle Tabelle VT4 eingefügt.
  5. GROUP BY gruppiert die Datensätze in VT4 gemäß den Spalten in der Group-By-Klausel, um VT5 zu generieren.
  6. CUBE|ROLL UP Führen Sie den CUBE- oder ROLLUP-Vorgang an Tabelle VT5 durch, um Tabelle VT6 zu generieren.
  7. HAVING wendet den Having-Filter auf die virtuelle Tabelle VT6 an und nur Datensätze, die die Bedingungen erfüllen, werden in die virtuelle Tabelle VT7 eingefügt
  8. SELECT führt die Select-Operation ein zweites Mal aus, wählt die angegebenen Spalten aus und fügt sie in die virtuelle Tabelle VT8 ein.
  9. DISTINCT entfernt doppelte Daten und generiert eine virtuelle Tabelle VT9.
  10. ORDER BY Sortiert die Datensätze in der virtuellen Tabelle VT9 nach den angegebenen Anforderungen und generiert die virtuelle Tabelle VT10
  11. LIMIT ruft die Datensätze der angegebenen Zeile ab, generiert eine virtuelle Tabelle VT11 und gibt sie an den Abfragebenutzer zurück

Wenn Sie Fragen haben, hinterlassen Sie bitte eine Nachricht oder kommen Sie zur Diskussion in die Community. Vielen Dank fürs Lesen und ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung dieser Site!

Das könnte Sie auch interessieren:
  • Beispiel für die Verwendung von PHP zur Implementierung der MySQL-Batchausführung mehrerer Anweisungen
  • Ausführen dynamischer Abfragen mit nicht dynamischen SQL Server-SQL-Anweisungen
  • So erstellen und führen Sie dynamische SQL-Anweisungen in SQL SERVER aus
  • Mybatis-Plugin: Print SQL und seine Implementierungsmethode zur Ausführungszeit
  • Mysql verwendet den Kill-Befehl, um das Deadlock-Problem zu lösen (eine bestimmte SQL-Anweisung, die ausgeführt wird, abzubrechen).
  • Lösung für den MySQL-Dienstfehler 1067: Ändern Sie den Pfad der ausführbaren MySQL-Datei
  • MySql-Batch-Insert-Optimierung. Beispiel für SQL-Ausführungseffizienz. Detaillierte Erklärung
  • Oracle: Sehen Sie sich die SQL-Anweisungen mit der langsamsten Ausführung und den längsten Abfragezeiten an

<<:  CocosCreator - modulares Lernskript

>>:  Detaillierte Erklärung zur Verwendung mehrerer Timer in CocosCreator

Artikel empfehlen

Beispielcode für HTML-Layout links und rechts

CSS: Code kopieren Der Code lautet wie folgt: html...

Teilen Sie 8 CSS-Tools zur Verbesserung des Webdesigns

Wenn das Website-Design bearbeitet oder geändert ...

Detaillierte Erklärung des Linux-Texteditors Vim

Vim ist ein leistungsstarker Vollbild-Texteditor ...

Warum MySQL die Verwendung von Unterabfragen und Verknüpfungen nicht empfiehlt

So führen Sie eine paginierte Abfrage durch: 1. F...

Implementierung eines Puzzlespiels mit js

In diesem Artikel wird der spezifische Code von j...

Detaillierte Erklärung zur Verwendung von React.cloneElement

Inhaltsverzeichnis Die Rolle von cloneElement Anw...

So kompilieren Sie Nginx neu und fügen Module hinzu

Beim Kompilieren und Installieren von Nginx werde...