[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