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

Welche Abfrage ist besser und effizienter - mysql

1- Es ist ein Kinderspiel, verwenden Sie den Typ I

2- Der Join vom Typ II wird auch als "impliziter Join" bezeichnet, während der Typ I als "expliziter Join" bezeichnet wird. Mit modernen DBMS haben Sie bei normalen Abfragen keine Leistungsprobleme. Aber ich denke, bei einer großen komplexen Multi-Join-Abfrage könnte das DBMS Probleme mit dem impliziten Join haben. Nur die Verwendung von explizitem Join könnte Ihren Explain-Plan verbessern, also ein schnelleres Ergebnis !

3- Die Leistung könnte also ein Problem sein, aber am wichtigsten ist vielleicht die Verbesserung der Lesbarkeit für die weitere Wartung. Die explizite Verknüpfung erklärt genau, was Sie in welchem ​​Feld verknüpfen möchten, während die implizite Verknüpfung nicht anzeigt, ob Sie eine Verknüpfung oder einen Filter erstellen. Die Where-Klausel ist für filter, nicht für join !

Und ein großer Punkt für explizite Joins:Outer Joins sind bei impliziten Joins wirklich nervig. Es ist so schwer zu lesen, wenn Sie mehrere Verknüpfungen mit äußerer Verknüpfung wünschen, dass explizite Verknüpfungen DIE Lösung sind.

4- Ausführungsplan ist das, was Sie brauchen (Siehe das Dokument )

Einige Duplikate :

Explizite vs. implizite SQL-Joins

SQL-Join:where-Klausel vs. on-Klausel

INNER JOIN ON vs. WHERE-Klausel