Linker Join, wobei die linke Tabelle als treibende Tabelle und die linke Tabelle als Grundlage für die Ergebnismenge verwendet wird und die Daten aus der rechten Tabelle mit der Ergebnismenge verbunden werden
Rechter Join, rechte Tabelle als treibende Tabelle verwenden, rechte Tabelle als Basis des Ergebnissatzes verwenden, Daten aus der linken Tabelle mit dem Ergebnissatz verbinden
innerer Join , die Ergebnismenge nimmt den Schnittpunkt der beiden Tabellen an
Full Join, die Ergebnismenge ist die Vereinigung zweier Tabellen
MySQL hat keine vollständige Verknüpfung, Union ersetzt
Der Unterschied zwischen Union und Union bedeuten, dass Union Duplikate entfernt Der Unterschied zwischen und besteht darin, dass beim Erstellen des Cross-Join-Ergebnissatzes der Ergebnissatz gemäß der Ein-Bedingung gefiltert wird ist der Treiber
Join-Prinzip
Simpe Nested-Loop Join
Wenn beispielsweise Tabelle A und Tabelle B vorhanden sind und die beiden Tabellen JOIN sind, werden die Verbindungsbedingungen von Tabelle A verwendet, um Tabelle B nacheinander zu durchlaufen, passend zu den Gleiche ID von Tabelle A und Tabelle B. Das Einfügen in die Ergebnismenge ist die niedrigste Effizienz.
Index Nested-Loop Join
Ausführungsprozess (Festplattenscan)
Lesen Sie eine Datenzeile R aus Tabelle t1; Entnehmen Sie aus der Datenzeile R das Feld a zu Tabelle t2
Suchen Sie im Baum nachWiederholen Sie die Schritte 1 bis 3, bis die Schleife am Ende von Tabelle t1 endet.
r, um die Anzahl der Schleifen zu reduzieren. Dieser Puffer ist standardmäßig 256 KB groß und kann über den Befehl show variables wie „join_%“ angezeigt werden.
Die spezifische Methode besteht darin, die qualifizierten Spalten in der ersten Tabelle auf einmal im Puffer abzufragen, dann die zweite Tabelle einmal zu durchlaufen, sie nacheinander mit allen Werten im Puffer zu vergleichen und die Vergleichsergebnisse hinzuzufügen zum Ergebnissatz
Der Join-Puffer wird nur verwendet, wenn der JOIN-Typ ALL, index, rang oder index_merge ist. Sie können den SQL-Abfragetyp über EXPLAIN anzeigen.
Erhöhen Sie die Größe des Join-Puffers (je mehr Daten gleichzeitig zwischengespeichert werden, desto seltener wird die äußere Tabelle durchlaufen)
Achten Sie auf die implizite Konvertierung und Zeichenkodierung des Joins Feld, um Indexfehler zu vermeiden
Das obige ist der detaillierte Inhalt vonWas ist das Nutzungsprinzip von MySQL Join?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!