Wollte mal fragen ob jemand mir einen Tipp geben kann wie ich die folgende Abfrage ein wenig oder auch etwas mehr beschleunigen kann:
- Code: Alles auswählen
$abfrage = "SELECT `servername` as `srvname`, `servername`,
(SELECT COUNT(status) FROM `serverstatis` WHERE `status` = 1 AND `servername` LIKE `srvname`) as ok,
(SELECT COUNT(status) FROM `serverstatis` WHERE `status` = 0 AND `servername` LIKE `srvname`) as full
from `serverstatis`
GROUP BY `servername`
order by `ok` DESC";
Die Tabelle serverstatis selbst enthält die Felder:
id
servername
status
time
Konkret mache ich damit folgendes, ich frage alle Stunden den Serverstatus der SimCity Server ab und speichere diese mit 1 & 0 in der DB ab, also 1 fĂĽr VerfĂĽgbar und 0 fĂĽr voll.
Mit diesen Werten berechne ich dann mit einem Punktesystem welcher Server am besten/meisten VerfĂĽgbar is.
Grundsätzlich funktioniert es mit der Abfrage auch.
Allerdings beschäftigt das den sql Server dermaßen, dass er extrem lange braucht um das zu verarbeiten. Sind nämlich momentan um die 15.000 Datensätze die er durchackern muss.
Wäre für jede Hilfe dankbar, ich steh nämlich an, weil ich nicht sehe wie ich die Abfrage "tunen" kann.
Hier kann man es sich live ansehen:
http://simcity.weavernet.at/index.php << zeigt die aktuellen Statis an und speichert diese auch gleich in der DB
http://simcity.weavernet.at/serverperformance.php << hier wird besagte Abfrage ausgefĂĽhrt
LG
Hary