[vz-dev] SQL Abfrage aktueller Verbrauch sehr langsam
Hallo, für mein neues Verbrauchs oder Vergleichsanzeige Projekt der aktuellen PV Einspeisung und Bezug vom EVU frage ich in einem PHP script die Volkszähler Datenbank ab. include './config.php'; $link=mysql_connect($DBHost,$DBUser,$DBPass); mysql_select_db($DB); $result1=mysql_query(SELECT value FROM data WHERE id = (select max(id) FROM data WHERE channel_id LIKE '14')); while ($daten=mysql_fetch_array($result1)) { $aktuellerStromverbrauch=$daten['value']; } $aktuellerStromverbrauch = number_format($aktuellerStromverbrauch, 0, '.', ''); Diese Anfrage dauert ca. 6-7 Sekunden. Hat jemand eine Idee wie man dieses beschleunigen kann? Gruß Sven
Re: [vz-dev] SQL Abfrage aktueller Verbrauch sehr langsam
On Sat, 14 Sep 2013 11:07:20 +0200 Sven peitz sven.pe...@gmx.net wrote: für mein neues Verbrauchs oder Vergleichsanzeige Projekt der aktuellen PV Einspeisung und Bezug vom EVU frage ich in einem PHP script die Volkszähler Datenbank ab. [...] $result1=mysql_query(SELECT value FROM data WHERE id = (select max(id) FROM data WHERE channel_id LIKE '14')); auch zu beachten, was genau in data.value steht ist vom channel-type abhaengig... diese loesung funktioniert nur, wenn leistungswerte geloggt werden. Diese Anfrage dauert ca. 6-7 Sekunden. Hat jemand eine Idee wie man dieses beschleunigen kann? die anfrage ohne subquery formulieren? (subqueries sind fuer nicht sql-er zwar oft intuitiver, aber meist nicht effizient.) select value where channel order by id desc limit 1 Gruß Sven - Thorben
Re: [vz-dev] SQL Abfrage aktueller Verbrauch sehr langsam
Auch kann es helfen ein explain vor den SQL-Befehl zu setzen und sich die Analyse anzusehen - da sieht man recht schnell ob Teile ohne Index ablaufen, was meist in langsamen Abfragen endet. -- Mit freundlichen Grüßen || Sincerely yours Florian Knodt ·· Im Teich 11 ·· 56648 Saffig www.adlerweb.info · www.56648.de · @adlerweb
Re: [vz-dev] SQL Abfrage aktueller Verbrauch sehr langsam
Ich hatte ähnliche Probleme- Grund dabei war allerdings 1s Connect Time für MySQL. Warum gehst Du für die Abfragen eigentlich nicht über die Middleware? Dann klappts auch für alle Sensortypen! vg Andreas 2013/9/14 Florian Knodt f.kn...@yotaweb.de Auch kann es helfen ein explain vor den SQL-Befehl zu setzen und sich die Analyse anzusehen - da sieht man recht schnell ob Teile ohne Index ablaufen, was meist in langsamen Abfragen endet. -- Mit freundlichen Grüßen || Sincerely yours Florian Knodt ·· Im Teich 11 ·· 56648 Saffig www.adlerweb.info · www.56648.de · @adlerweb