Hallo Sven,
sowas in der Form sollte helfen:
http://host/middleware.php/data/8f20eb60-60df-11e2-81a1-3d3a387429e.json?from=now
vg
Andreas
2013/9/15 Sven peitz sven.pe...@gmx.net
Hallo,
leider kann ich derzeit nicht weiter testen, weil mein Provider den
Zugriff wegen zu hoher SQL Last gesperrt hat. ;-(
[X] MySQL-Last (Wartezeit auf Festplattenzugriff)
[X] MySQL-Last lesend (SELECT-Statements)
[X] Kontinuierlich hohe Last
Also sind die 6 Sekunden verursacht durch Auslastung des Servers.
Dem Vorschlag kann ich jetzt nicht folgen. SQL ist nicht mein täglich Brot
;-)
Select value where channel order by id desc limit 1
Aber den Vorschlag über die Middleware zu gehen würde ich gerne aufgreifen
wenn ich wüsste wie.
Eigentlich brauche ich ja nur den zuletzt in der Datenbank eingetragenen
Wert zur ID.
Ich muss jetzt aber erst mal warten bis der Zugriff wieder frei ist.
Gruß
Sven
Am 14.09.2013 11:40, schrieb Thorben Thuermer:
On Sat, 14 Sep 2013 11:07:20 +0200
Sven peitz sven.pe...@gmx.net 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