Heim > Datenbank > MySQL-Tutorial > Was ist das Nutzungsprinzip von MySQL Join?

Was ist das Nutzungsprinzip von MySQL Join?

PHPz
Freigeben: 2023-05-26 10:07:17
nach vorne
1334 Leute haben es durchsucht

    Join-Typ

    • 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

    Was ist das Nutzungsprinzip von MySQL Join?

    • Rechter Join, rechte Tabelle als treibende Tabelle verwenden, rechte Tabelle als Basis des Ergebnissatzes verwenden, Daten aus der linken Tabelle mit dem Ergebnissatz verbinden

    Was ist das Nutzungsprinzip von MySQL Join?

    • innerer Join , die Ergebnismenge nimmt den Schnittpunkt der beiden Tabellen an

    Was ist das Nutzungsprinzip von MySQL Join?

    • 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

    Was ist das Nutzungsprinzip von MySQL Join?Join-Prinzip

      Dieser Satz kann wie folgt umgeschrieben werden: Sein Wesen kann als Betrieb einer verschachtelten Schleife verstanden werden, wobei die äußere for-Schleife die Tabelle antreibt und die innere for-Schleife die angetriebene ist Tisch. Es kann entsprechend der Strategie zum Verbinden der zusammengesetzten Daten in drei Algorithmen unterteilt werden.
    • 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 nach
    • ;

    Nehmen Sie die Zeilen heraus, die die Bedingungen in Tabelle t2 erfüllen, und bilden Sie eine Zeile mit R als Teil der Ergebnismenge.

    Wiederholen Sie die Schritte 1 bis 3, bis die Schleife am Ende von Tabelle t1 endet.

      Durchsuchen Sie für jede Zeile von R Tabelle t2 basierend auf dem a-Feld mithilfe eines Baumsuchprozesses.
    • Block Nested-Loop Join

      MySQL verwendet einen Puffer namens
    • Join-Puffer

      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.

    • Join-Optimierung
    • Um den Join-Algorithmus zu optimieren, wird der Index-Nested-Loop-Join-Algorithmus verwendet, um Indexfelder für die Verbindungsfelder zu erstellen.

      Verwenden Sie Tabellen mit kleinen Datenmengen, um Tabellen zu steuern große Datenmengen
    • 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!

    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