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

Frage Website lädt zu lange durch SQL Abfragen

xice

Neues Mitglied
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:
mysqldb.jpg
[/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
 
Werbung:
Es ist besser möglichst viele kleine Abfragen zu machen als eine große Abfrage. Wobei man das natürlich auch von Fall zu Fall unterscheiden muss.

ich weiß, man denkt das im ersten Moment nicht. Auch ich habe früher riesen große Statements gebaut um möglichst viele Daten auf einmal abgreifen zu können. Rein von der Performance her ist das jedoch von Nachteil. Der Gedanke kleine Statements zu bauen war mir auch erst zuwieder. Als ich dann aber mal typo3 im Debug-Modus habe laufen lassen, fiel mir auf, dass die es genauso machen: teilweise wird für jedes im Template auszugebende Feld ein einzelnes Statement abgeschickt.
 
Ich denke auch es ist besser mit den 4 kleinen Abfragen zu arbeiten, da die DB auch wächst und die Schleife irgendwann sehr lange dauern würde.
Dann versuch ich das mit pagination zu lösen.
Kann mir jemand ein Beispiel für die pagination einer großen Tabelle in PHP geben? Wichtig dabei ist, dass die Seite neu lädt wenn man auf page2, page3 usw. geht.

Grüße Xice
 
Werbung:
Zurück
Oben