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

Reine CSS-Implementierung eines Radio- und Checkbox-Effektbeispiels

Radio und Kontrollkästchen Reines CSS zum Erziele...

Linux verwendet NetworkManager, um Ihre MAC-Adresse zufällig zu generieren

Egal, ob Sie zu Hause auf dem Sofa oder draußen i...

So installieren Sie MySQL über Yum auf CentOS7

1. Überprüfen Sie, ob MySQL installiert ist Yum-L...

Beispielanalyse der Intervallberechnung von MySQL-Datum und -Uhrzeit

Dieser Artikel beschreibt anhand eines Beispiels ...

MySQL-Variablenprinzipien und Anwendungsbeispiele

In der MySQL-Dokumentation können MySQL-Variablen...

Lösung zur Deinstallation von Python und Yum im CentOs-System

Hintergrund des Unfalls: Vor einigen Tagen habe i...

Erläuterung unveränderlicher Werte in React

Inhaltsverzeichnis Was sind unveränderliche Werte...

JavaScript zum Erzielen eines Akkordeoneffekts

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

Verständnis und Anwendungsszenarien von Enumerationstypen in TypeScript

Inhaltsverzeichnis 1. Was ist 2. Verwendung Numer...

Probleme und Lösungen beim Ersetzen von Oracle durch MySQL

Inhaltsverzeichnis Migrationstools Anwendungstran...