Heim > Datenbank > MySQL-Tutorial > Hauptteil

Was sollten Sie bei der Verwendung verwandter Abfragen in MySQL beachten?

PHPz
Freigeben: 2023-05-28 15:17:30
nach vorne
1049 Leute haben es durchsucht

1. Stellen Sie sicher, dass die Spalten in den Klauseln ON und USING Indizes enthalten.

Beim Erstellen eines Index müssen Sie die Reihenfolge der Assoziationen berücksichtigen. Wenn Tabelle A und Tabelle B mithilfe von Spalte c verknüpft sind und die Zuordnungsreihenfolge des Optimierers A, B lautet, muss kein Index für die entsprechende Spalte von Tabelle A erstellt werden. Nicht verwendete Indizes stellen eine zusätzliche Belastung dar. Sofern keine anderen Gründe vorliegen, müssen Sie nur Indizes für die entsprechenden Spalten der zweiten Tabelle in der Assoziationssequenz erstellen.

2. Stellen Sie sicher, dass alle Ausdrücke in GROUP BY und ORDER BY nur Spalten in einer Tabelle betreffen, damit MySQL Indizes zur Optimierung verwenden kann.

Beispiel

Angenommen, MySQL führt Assoziationsoperationen gemäß der Assoziationsreihenfolge A und B in der Abfrage aus, dann kann der folgende Pseudocode verwendet werden, um darzustellen, wie MySQL diese Abfrage abschließt:

outer_iterator = SELECT A.xx,A.c FROM A WHERE A.xx IN (5,6);
 
outer_row = outer_iterator.next;
 
while(outer_row) {
 
    inner_iterator = SELECT B.yy FROM B WHERE B.c = outer_row.c;
 
    inner_row = inner_iterator.next;
 
    while(inner_row) {
 
        output[inner_row.yy,outer_row.xx];
 
        inner_row = inner_iterator.next;
 
    }
 
    outer_row = outer_iterator.next;
 
}  可以看到,最外层的查询是根据A.xx列来查询的,A.c上如果有索引的话,整个关联查询也不会使用。再看内层的查询,很明显B.c上如果有索引的话,能够加速查询,因此只需要在关联顺序中的第二张表的相应列上创建索引即可。
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWas sollten Sie bei der Verwendung verwandter Abfragen in MySQL beachten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!