Hallo
Erstmal danke, ich habe schon so etwas erwartet, aber ich muss noch etwas korrigieren. Wenn ich einen innerjoin o.ä. mache und damit mehrere Daten mit einem SQL-Aufruf mache (sagen wir mal 5) dann macht das DBMS doch intern diese 5 Abfragen oder nicht ?
Nein, das ist eine Abfrage. Diese Abfrage kostet Zeit, typischerweise alles andere als das fünffache einer Einzelabfrage, wahrscheinlich nur marginal mehr als diese. Zusätzlich Zeit kostet die Verbindung mit der Datenbank (falls erforderlich) und das Absetzen der Query. Die Abfrage durchläuft eventuell nochmals den Optimierer - all das kann zusätzlich Zeit kosten.
Deine fünf Einzelabfragen werden im Normalfall das Mehrfache an Zeitaufwand benötigen als die eine Abfrage, die fünf Datensätze zurückliefert, wahrscheinlich sogar mehr als das fünffache der Zeit.
Mit Subselects (ab MySQL 4.1) kannst Du ggf. nochmals etwas rausholen, wir hatten hier Threads, wo die Performance mit UNION (ab MySQL 4.0) deutlich gesteigert werden konnte, Views (ab MySQL 5) könnten hilfreich und performancesteigernd sein, ... Das hängt halt alles von der Dir vorliegenden MySQL-Version, Deiner Datenbankstruktur und nicht zuletzt von Deiner Problemstellung ab. Konkret könnten wir Dir Optimierungsvorschläge machen, wenn wir von Dir hier Konkretes lesen könnten, Glaskugeln sind hier immer noch rar :-)
Nutze EXPLAIN, um Deine Abfragen zu optimieren. Aber mach' auf keinen Fall Einzelabfragen - oder versuche einen JOIN mittels der API nachzubauen (das haben wir hier schon öfter gesehen). Unperformanter geht es im Normalfall kaum.
Freundliche Grüße
Vinzenz