Mysql
 sql >> Datenbank >  >> RDS >> Mysql

JOIN-Abfragen im Vergleich zu mehreren Abfragen

Für innere Verknüpfungen ist eine einzelne Abfrage sinnvoll, da Sie nur übereinstimmende Zeilen erhalten. Für linke Verknüpfungen sind mehrere Abfragen viel besser ... sehen Sie sich den folgenden Benchmark an, den ich erstellt habe:

  1. Einzelne Abfrage mit 5 Joins

    Abfrage:8,074508 Sekunden

    Ergebnisgröße:2268000

  2. 5 Abfragen hintereinander

    Kombinierte Abfragezeit:0,00262 Sekunden

    Ergebnisgröße:165 (6 + 50 + 7 + 12 + 90)

.

Beachten Sie, dass wir in beiden Fällen die gleichen Ergebnisse erhalten (6 x 50 x 7 x 12 x 90 =2268000)

Left Joins verwenden exponentiell mehr Speicher mit redundanten Daten.

Das Speicherlimit ist möglicherweise nicht so schlimm, wenn Sie nur zwei Tabellen verknüpfen, aber im Allgemeinen drei oder mehr, und es lohnt sich, verschiedene Abfragen durchzuführen.

Nebenbei bemerkt, mein MySQL-Server befindet sich direkt neben meinem Anwendungsserver ... also ist die Verbindungszeit vernachlässigbar. Wenn Ihre Verbindungszeit im Sekundenbereich liegt, gibt es vielleicht einen Vorteil

Frank