• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Welche SQL-Abfrage über PHP ist schneller?

r-ene

Neues Mitglied
Hi Leute,
ich möchte Daten von vier Spielen aus der DB herauslesen. Aber nur für das erste Spiel brauch ich noch die Beschreibung.
Also:

PHP:
$sql = "SELECT url, name, beschreibung FROM spiele WHERE status = 1 ORDER BY id DESC LIMIT 1";
...
$sql = "SELECT url, name FROM spiele WHERE status = 1 ORDER BY id DESC LIMIT 1,3";

Was meint ihr, ist es so besser oder soll ich nur eine Abfrage machen und dann halt von jedem die Beschreibung auslesen lassen?
Was ist denn schneller?
 
Nimm das erste Statement und verarbeite es je nachdem wie es dein HTML-Code zulässt (prüfen, ob das das erste Ergebnis ist -> wenn ja: beschreibung anzeigen etc.).
 
Echt? Meinste das ist schneller?
Na zumindest ist der Code kürzer.
Dann werd ich das mal so machen.
 
also das schnellste ist immer alle informationen die du brauchst auf einmal auszulesen, und nicht mehr oder weniger ^^

von der datenmenge her ist der erste query zwar schneller aber wenn du ihn 3 mal ausführen musst um das gleiche ergebniss wie mit dem zweiten zu bekommen ist der untere schneller
 
solche queries sind was speed angeht doch eher relativ und man rechnet im 100'stel sekunden bereich.
schneller ist das, was schneller zum erfolg führt. machen würde ich es so, wie es mir besser gefällt.
 
Naja ok, dann mach ich es so wie ich will.
Noch ne kurze Frage.
Wenn eine if-Abfrage ausgewertet wird. Z.B.
PHP:
if ($bluub != $bla && $nichts == 0 && $moep = "moep")
Wird das dann in der Klammer von links nach rechts ausgewertet?
Wenn zum Beispiel die erste Bedingung nicht zutrifft, dann werden die anderen 2 erst gar nicht mehr abgefragt. Ist das so?
Würde das dann genauso schnell ausgewertet werden, wie das:
PHP:
if ($bluub != $bla)
Glaub schon oder?
 
ja, deine vermutung trifft zu. denn wenn die erste bedindung in einer UND-Verknüpfung unwahr ist kann der gesamte ausdruck nicht mehr wahr werden. der interpreter spart sich dann die zeit die anderen ausdrücke auszuwerten.

anzunehmen dass das untere gleich schnell ist. aber darauf kommt es ja nicht an, sondern auf das was du testen musst.
 
Ja, ich hatte am Anfang das da:
PHP:
if ($bluub != $bla) {
  if ($nichts == 0 && $moep = "moep") ...
}
Weil ich das innere nur Abfragen muss, wenn das äußere zutrifft.
Aber wenn das andere genauso schnell geht, dann mach ich natürlich das andere.
 
Zurück
Oben