Tach!
Was ist nun sinnvoller: Eine Abfrage mit join über vier Tabellen, die sämtliche Daten auf einmal liefert, allerdings auch haufenweise Daten in tausendfacher Ausführung, die alle aufwändig zusammengeführt werden müssen [...] , oder vier Abfragen an die jeweiligen Tabellen auf die Gefahr hin, dass sich zwischen den zusammengehörigen Abfragen eine Tabelle ändert [...] und die gesammelten Daten insgesamt nicht mehr stimmig sind?
Es gibt auch noch Alternativen zu Joins. Zumindest, wenn aus einer Tabelle nur ein einzelnes Feld benötigt wird, kann man da eine correlated subquery verwenden. Nicht nur, dass man damit die beiden Querys auch einzeln testen kann, man vermeidet den Join und die Kopfschmerzen damit. Und man hat die Subquery schön übersichtlich an einem Fleck. Beim Join hingegen steht das Feld in der SELECT-Klausel und die Datenquelle irgendwo weiter hinten in der FROM-Klausel.
Welchem Aspekt sollte grundsätzlich mehr Beachtung geschenkt werden, der Datenmenge oder der Stimmigkeit? Ich denke eigentlich letzterem und damit der join-Variante, frage mich aber, wo wohl die Grenze zu ziehen wäre. Wenn die Datenbank oder die Funktionen tatsächlich merklich in die Knie gehen?
Was nützen dir schnelle Daten, wenn sie falsch sind? Korrekte Daten mit viel Wartezeit mag aber auch keiner. Korrekt und optimiert, ist das, was man haben möchte. Indexe passend setzen, Analysewerkzeuge verwenden (zum Beispiel EXPLAIN bei MySQL).
dedlfix.