Datenbankabfrageoptimierung: Unterabfrageoptimierung

Datenbankabfrageoptimierung: Unterabfrageoptimierung

1. Fall

Nehmen Sie alle Mitarbeiter, die nicht Firmenchef sind und gruppieren Sie diese nach Alter!

select age als 'Alter', count(*) als 'Anzahl der Personen' aus t_emp, wobei die ID nicht in 
(Wählen Sie „CEO“ aus „t_dept“, wobei „CEO“ nicht null ist) Gruppieren Sie nach Alter; 

Wie kann optimiert werden?

① Lösen Sie den vollständigen Tabellenscan der Abteilungstabelle und erstellen Sie einen Index für das Feld „CEO“:

Führen Sie zu diesem Zeitpunkt eine erneute Abfrage durch:

② Weitere Optimierung, nicht ersetzen.

Das obige SQL kann durch Folgendes ersetzt werden:

select age als ‚Alter‘, count(*) als ‚Anzahl der Personen‘ von emp e left join dept d on e.id=d.ceo where d.id ist null, group by age; 

Fazit: Versuchen Sie bei der Beurteilung des Bereichs, „not in“ und „not exists“ zu vermeiden. Verwenden Sie stattdessen den Left Join für „xxx is null“.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • MySQL-Datenbankabfrageoptimierung MySQL-Effizienz
  • Abfrageoptimierung und Paging-Algorithmus für riesige Datenbanken
  • Optimierung von Datenbankabfragen (Master-Slave-Tabellendesign)
  • Detaillierte Erläuterung der Optimierung von Abfrageanweisungen in der MySQL-Datenbank
  • Eine Sammlung von Abfrageoptimierungs- und Paging-Algorithmen für riesige Datenbanken 1/2
  • Sammlung von Abfrageoptimierungs- und Paging-Algorithmen für riesige Datenbanken 2/2
  • Eine praktische Aufzeichnung eines Timeout-Optimierungsproblems für Datenbankabfragen

<<:  So verwenden Sie die Firewall-Iptables-Strategie zum Weiterleiten von Ports auf Linux-Servern

>>:  Detailliertes Beispiel für die Verwendung von useState in React

Artikel empfehlen

Detaillierte Erläuterung verschiedener Speichermethoden von Docker-Containern

Inhaltsverzeichnis Vorne geschrieben Mehrere Spei...

Grafisches Tutorial zur Installation und Konfiguration von CenOS6.7 mysql 8.0.22

CenOS6.7 installiert MySQL8.0.22 (empfohlene Samm...

Vue implementiert Login-Sprung

In diesem Artikelbeispiel wird der spezifische Co...

So prüfen Sie, ob ein Port in LINUX belegt ist

Ich konnte nie herausfinden, ob der Port belegt i...

VMware Workstation ist nicht mit Device/Credential Guard kompatibel

Beim Installieren einer virtuellen Maschine wird ...

So verwenden Sie ECharts in WeChat Mini-Programmen mit uniapp

Heute verwenden wir Uniapp, um Echarts zur Anzeig...

Der Unterschied zwischen Docker Run und Start

Der Unterschied zwischen Ausführen und Starten in...

So verwenden Sie jconsole zum Überwachen von Remote-Tomcat-Diensten

Was ist JConsole JConsole wurde in Java 5 eingefü...

Der visuelle Designpfad der Website sollte den Benutzergewohnheiten entsprechen

Cooper sprach über den visuellen Pfad des Benutze...

Erfahren Sie mehr über JavaScript-Iteratoren

Inhaltsverzeichnis Einführung Wie sieht ein Itera...