Heim  >  Artikel  >  Backend-Entwicklung  >  Wie optimiert MySQL eine SQL-Anweisung mit einer großen Datenmenge und zwei Tabellen, die abgefragt werden müssen?

Wie optimiert MySQL eine SQL-Anweisung mit einer großen Datenmenge und zwei Tabellen, die abgefragt werden müssen?

WBOY
WBOYOriginal
2016-08-26 10:28:221246Durchsuche

Zwei Tabellen A hat 2000 Einträge und B hat 20 Millionen Einträge
wählen Sie a.xxx,b.xxx,b.xxxx aus A als linken Join b als b auf a.id = b.bid, wobei a .xx = 0 und a.xxx != 0;

Antwortinhalt:

Zwei Tabellen A hat 2000 Einträge und B hat 20 Millionen Einträge
wählen Sie a.xxx,b.xxx,b.xxxx aus A als linken Join b als b auf a.id = b.bid, wobei a .xx = 0 und a.xxx != 0;

  1. Paging-Suche, keine großen Datenmengen auf einmal abrufen

  2. Die beiden zu überprüfenden redundanten Felder von b befinden sich in Tabelle a, sodass keine Verknüpfung erforderlich ist

  3. Es muss zwischengespeichert werden, sonst kann die Datenbank es definitiv nicht unterstützen

  4. Wenn die Datenmenge Dutzende Millionen erreicht, müssen Sie eine horizontale Aufteilung in Betracht ziehen

Zuallererst bin ich kein Back-End-Mensch, daher kann ich Ihnen nur sagen, was ich weiß

Ich weiß nicht, ob das Tool den Ausführungsplan sehen kann. Schauen Sie sich den Ausführungsprozess an. Welcher Prozess größere Daten generiert, hängt davon ab, ob er optimiert werden kann

Ich weiß auch, dass das Hinzufügen von Indizes eine Optimierung ermöglichen sollte

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn