[vz-dev] HUGE performance improvement for grouped queries

Andreas Goetz cpuidle at gmail.com
Sat Oct 12 19:08:44 CEST 2013


Hallo Zusammen!

Um der Performance meiner VZ Installation auf dem Raspi etwas nachzuhelfen
habe ich Aggregation von Daten als neues Feature zum VZ hinzugefügt.
Anstatt wie bei vzcompress2 Daten zu löschen werden diese in einer
separaten Tabelle aggregiert- in der aktuellen Version auf Tagesebene.

Wenn die MW jetzt Abfragen nach aggregierten Daten stellt, wie z.B.
from=1.1.2000 to=now group=month dann werden die SQL statements so
umgebaut, dass die Daten aus der Agrgegationstabelle kommen statt aus der
Datentabelle. Da hier _deutlich_ weniger Daten liegen gehts natürlich
schneller.

Bisher nicht implementiert ist ein automatisches Tuning eingehender
Anfragen. Wenn z.B. das Frontend obenstehende Anfrage mit tuples=200
ausführt, wird es ohne vzcompress immer noch sehr lange dauern. Denkbar
wäre eine Automatik einzubauen die je nach "Aggressivität" eine Gruppierung
nach Tag oder Stunde hinzuschaltet.

Added data aggregation:
1. create aggregate table using misc/sql/aggregation.sql
2. run initial aggregation using misc/sql/aggregation.sql
3. set $config['aggregate'] = true in etc/volkszaehler.conf.php
4. setup CRON to run delta aggregation using misc/sql/aggregation.sql

https://github.com/andig/volkszaehler.org/tree/aggregate

Jetzt würde ich mich über Feedback und vor allem Tests freuen!

Gruss,
Andreas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://demo.volkszaehler.org/pipermail/volkszaehler-dev/attachments/20131012/4a6b2f1d/attachment.html>


More information about the volkszaehler-dev mailing list