Hallo,
ich arbeite derzeit an einer Website (eigentlich nur eine Tabelle) die durch PHP mit SQL abfragen befüllt wird. Das Problem dabei ist, dass es sehr lange dauert (ca. 1min) die Seite zu laden.
Die DB ist folgendermaßen aufgebaut:
[/URL][/IMG]
Pro Zeile in der Tabelle bzw. Website werden 4 SQL Abfragen gemacht:
- Wieviele Spieler die Map geschafft haben (COUNT(*))
-Geringste Zeit bzw. Rekord (MIN(runtimepro))
-Zeit des Spielers der die Seite betrachtet (WHERE steamid=$steamid)
-Der Rang des Spielers der die Seite betrachtet (summe von Zeilen bis $steamid des Spielers erreicht ist)
Das würde eine Zeile befüllen und hinzu kommen dann die anderen Zeilen (etwa 540) mit anderen maps (mapname).
Ist es besser nur eine SQL abfrage zu machen, welche mir die gesamte Tabelle aus der DB gibt und dann mit einer Schleife zu den Ergebnissen zu kommen?
Ich habe auch probiert mit pagination zu arbeiten, sodass ich die abfragen so belassen könnte. Aber leider habe ich es bisher nicht hinbekommen und wüsste auch nicht wie sich der LIMIT befehl in meinem Fall nutzen lässt.
Für Lösungsvorschläge und Alternativen wäre ich dankbar :)
Grüße Xice
ich arbeite derzeit an einer Website (eigentlich nur eine Tabelle) die durch PHP mit SQL abfragen befüllt wird. Das Problem dabei ist, dass es sehr lange dauert (ca. 1min) die Seite zu laden.
Die DB ist folgendermaßen aufgebaut:
Pro Zeile in der Tabelle bzw. Website werden 4 SQL Abfragen gemacht:
- Wieviele Spieler die Map geschafft haben (COUNT(*))
-Geringste Zeit bzw. Rekord (MIN(runtimepro))
-Zeit des Spielers der die Seite betrachtet (WHERE steamid=$steamid)
-Der Rang des Spielers der die Seite betrachtet (summe von Zeilen bis $steamid des Spielers erreicht ist)
Das würde eine Zeile befüllen und hinzu kommen dann die anderen Zeilen (etwa 540) mit anderen maps (mapname).
Ist es besser nur eine SQL abfrage zu machen, welche mir die gesamte Tabelle aus der DB gibt und dann mit einer Schleife zu den Ergebnissen zu kommen?
Ich habe auch probiert mit pagination zu arbeiten, sodass ich die abfragen so belassen könnte. Aber leider habe ich es bisher nicht hinbekommen und wüsste auch nicht wie sich der LIMIT befehl in meinem Fall nutzen lässt.
Für Lösungsvorschläge und Alternativen wäre ich dankbar :)
Grüße Xice