[vz-dev] SQL Abfrage aktueller Verbrauch sehr langsam
Jakob Hirsch
jh at plonk.de
Mon Sep 16 14:01:31 CEST 2013
Sven peitz, 2013-09-14 11:07:
> $result1=mysql_query("SELECT value FROM data WHERE id = (select max(id)
> FROM data WHERE channel_id LIKE '14')");
...
> Diese Anfrage dauert ca. 6-7 Sekunden. Hat jemand eine Idee wie man
> dieses beschleunigen kann?
Der subquery macht einen table-scan über die komplette data-Tabelle, was
dauert natürlich entsprechend lange. So ist es kein Problem (wenn auch
nicht schön):
SELECT value FROM data WHERE channel_id=14 AND timestamp=(select
max(timestamp) FROM data WHERE channel_id=14);
Allerdings sollte man nicht ohne Grund direkt auf der DB arbeiten. Das
Vorgehen wie von Andreas Götz ist auch deutlich einfacher (Abfrage mit
from=now).
More information about the volkszaehler-dev
mailing list