die Antwort auf eine leistungsbezogene Fragen in Datenbanken ist es abhängig ist, und wir sind auf Details im OP kurz. keine Einzelheiten über Ihre Situation zu wissen, ... (so sind diese allgemeine Faustregeln)
schließt sich besser und leichter
- aus irgendeinem Grund mehrere Spaltenschlüssel (fischig) benötigen Wenn zu verstehen , können Sie weiterhin einen Join verwenden und einfach einen anderen Ausdruck auf die Join-Bedingung anwenden.
- Wenn Sie in Zukunft wirklich zusätzliche Daten hinzufügen müssen, ist das Join-Framework bereits vorhanden.
- Es macht es klarer, was genau Sie verbinden und wo Indizes implementiert werden sollten.
- Die Verwendung von Joins verbessert die Joins und verbessert das Nachdenken über Joins.
- schließt sich klar darüber, welche Tabellen im Spiel sind
Schriftliche Anfragen nichts mit effiency zu tun haben *
Die Abfragen, die Sie schreiben und was wird tatsächlich laufen wenig miteinander zu tun. Es gibt viele Möglichkeiten, eine Abfrage zu schreiben, aber nur so wenige Möglichkeiten, die Daten abzurufen, und die Abfrage-Engine entscheidet selbst. Dies betrifft hauptsächlich Indizes. Es ist sehr gut möglich, vier Abfragen zu schreiben, die völlig anders aussehen, aber intern dasselbe tun.
(* Es ist möglich, eine schreckliche Abfrage zu schreiben, die ineffizient ist, aber es dauert eine besondere Art von verrückt, das zu tun.)
select
body
from node_revisions nr
join node n
on n.vid = nr.vid
where n.nid = 4
Ich würde wetten, dass diese Abfrage und der logisch gleichwertige Join auf SQL Server identische Abfrageausführungspläne haben würden. – Dana