Guten Tag,
Um Logstatistiken auszuwerten, speichere ich jeden Zugriff auf die Website in einer SQL Tabelle
Jetzt möchte ich diese Daten auslesen um z.B. Diagramme zu erstellen.
Als Beispiel sollen die täglichen Zugriffe der letzten 30 Tage ausgegeben werden.
Dazu lese ich innerhalb einer Schleife die Zugriffe des jeweiligen Tages aus.
Das sieht dann ungefähr so aus(ungeprüft, soll nur dem Verständniss diesen)
Dummerweise dauert das viel zu lange(5-10 sek), es liegen 200 000 oder mehr Datensätze vor und in diesem Falle wären das 31 SELECT`s.
Kann ich das noch irgendwie optimieren, oder sollte ich die SQL Tabelle gleich anders anlegen? Z.b. für jeden Monat eine extra Table erstellen um so die Tables kleiner zu halten.
Vielen Dank für Eure Hilfe
Mike
Um Logstatistiken auszuwerten, speichere ich jeden Zugriff auf die Website in einer SQL Tabelle
PHP:
$sql = "INSERT INTO table_log (timestamp) VALUES ('$time')";
$result = mysql_query($sql, conn);
Jetzt möchte ich diese Daten auslesen um z.B. Diagramme zu erstellen.
Als Beispiel sollen die täglichen Zugriffe der letzten 30 Tage ausgegeben werden.
Dazu lese ich innerhalb einer Schleife die Zugriffe des jeweiligen Tages aus.
Das sieht dann ungefähr so aus(ungeprüft, soll nur dem Verständniss diesen)
PHP:
$day_sec = 3600*24 ;
while ($i<31) {
$k++;$i++;
$timetemp = $timestart - $day_sec;
$sql = "SELECT id FROM gc_log WHERE zeit < '$timestart' and zeit > '$timetemp' ";
$result = mysql_query($sql, $conn);
$data[$k] = mysql_num_rows($result);
$stunde[$k] = date("d",$timestart);
$timestart= $timetemp;
}
Kann ich das noch irgendwie optimieren, oder sollte ich die SQL Tabelle gleich anders anlegen? Z.b. für jeden Monat eine extra Table erstellen um so die Tables kleiner zu halten.
Vielen Dank für Eure Hilfe
Mike
Zuletzt bearbeitet: