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

Einführung in Docker-Container

1. Übersicht 1.1 Grundlegende Konzepte: Docker is...

Detaillierte Erläuterung der Verwendung des Linux-Zeitbefehls

1. Befehlseinführung Mit „time“ werden die für di...

Lösung für das Fehlen einer chinesischen Eingabemethode in Ubuntu

Es gibt keine Lösung für die chinesische Eingabem...

Detaillierte Erklärung der Mixins in Vue.js

Mixins stellen auf flexible Weise verteilte, wied...

Grundlegende Anwendungsbeispiele für benannte Slots in Vue

Vorwort Benannte Slots werden mithilfe des Attrib...

MySQL versteht kurz, wie "order by" funktioniert

Zum Sortieren ist „order by“ ein Schlüsselwort, d...

Details zur Ereignisbindung reagieren

Inhaltsverzeichnis Ereignisbindung von Klassenkom...

So aktivieren Sie das langsame Abfrageprotokoll in MySQL

1.1 Einleitung Durch Aktivieren des Slow Query Lo...

JavaScript implementiert das mobile Puzzlespiel mit neun Rastern

In diesem Artikel wird der spezifische Code für J...

So erstellen Sie eine virtuelle Maschine mit Vagrant+VirtualBox

1. Einleitung Vagrant ist ein Tool zum Erstellen ...

Über MySQL innodb_autoinc_lock_mode

Der Parameter innodb_autoinc_lock_mode steuert da...

Einige Referenzen zu Farben in HTML

In HTML werden Farben auf zwei Arten dargestellt. ...

Detailliertes Beispiel zur Verwendung der distinct-Methode in MySQL

Ein deutlicher Bedeutung: distinct wird verwendet...