N'abend...
Ich habe für eine Grafikerstellung je nach Auswahl im Menu 1-31 sql-abfragen. Nun möchte ich das (sofern möglich) so optimieren, dass es für eine Grafik nicht jeweils bis zu 31 SELECTs braucht, also etwas resourcensparenderes.
Das ganze wird dann im Endeffekt eine Tagesstatistik ergeben die je nach dem ob ein vorheriger Monat (28-31 Tage) oder der aktuelle Monat (im moment 12 Tage) ausgibt. Dazu werden die timestamps aus mysql gezogen.
Es funktioniert wunderbar, daran solls nicht liegen, mich stört einfach nur, dass es so viele SELECTs geben kann.
So schaut das ganze aus:
Kann man das überhaupt so optimieren das es sparsamer wird?
Ich habe für eine Grafikerstellung je nach Auswahl im Menu 1-31 sql-abfragen. Nun möchte ich das (sofern möglich) so optimieren, dass es für eine Grafik nicht jeweils bis zu 31 SELECTs braucht, also etwas resourcensparenderes.
Das ganze wird dann im Endeffekt eine Tagesstatistik ergeben die je nach dem ob ein vorheriger Monat (28-31 Tage) oder der aktuelle Monat (im moment 12 Tage) ausgibt. Dazu werden die timestamps aus mysql gezogen.
Es funktioniert wunderbar, daran solls nicht liegen, mich stört einfach nur, dass es so viele SELECTs geben kann.
So schaut das ganze aus:
PHP-Code:
# Startvariable (timestamp)
$start = $_GET['s'];
# aktueller Tag (Zahl)
$aktuell = date("d");
# timestamp für den 1. des aktuellen Monats erstellen
$stampmonat = mktime(0, 0, 0, date("m"), 1, date("Y"));
if ($stampmonat > $start) {
$tage = date("t");
for ($i=0; $i<$tage; $i++) {
if (!$s) {
$s = $e;
} else {
$s = $start + 86400;
}
$e = $s + 86400;
$sql = "SELECT
COUNT(CommentId) AS total
FROM Comments
WHERE time BETWEEN $s AND $e";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($result);
$ydata[] = $row['total'];
unset($s);
}
}
else {
for ($i=0; $i<$aktuell; $i++) {
if (!$s) {
$s = $e;
} else {
$s = $start + 86400;
}
$e = $s + 86400;
$sql = "SELECT
COUNT(CommentId) AS total
FROM Comments
WHERE time BETWEEN $s AND $e";
$result = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($result);
$ydata[] = $row['total'];
unset($s);
}
}
Kann man das überhaupt so optimieren das es sparsamer wird?
Kommentar