[vz-dev] ACHTUNG: Inkompatible Änderungen im Volkszahler Repository

Heiko Baumann hbcs at gmx.de
Thu Jan 9 21:10:28 CET 2014


>
> Bin jetzt echt am Grübeln - vielleicht läuft die Optimierung ja doch 
> schon? hmmm... ahhh.. moment, ich schau einfach mal ins mysql.log. 
> Tatsächlich: da wird fleissig auf die aggregate-Tabelle zugegriffen:
> 140109 20:37:15 70465 Connect   vz at localhost on volkszaehler
>                 70465 Query     SELECT e0_.id AS id0, e0_.uuid AS 
> uuid1, e0_.type AS type2, p1_.id AS id3, p1_.pkey AS pkey4, p1_.value 
> AS value5, e0_.class AS class6, p1_.entity_id AS entity_id7 FROM 
> entities e0_ LEFT JOIN properties p1_ ON e0_.id = p1_.entity_id WHERE 
> (e0_.uuid = '9a7ed6c0-f2dc-11e2-b13e-b9abb50897a8') AND e0_.class IN 
> ('channel', 'aggregator') ORDER BY p1_.pkey ASC
                 70465 Query     SELECT MIN(timestamp) FROM (SELECT 
timestamp FROM data WHERE channel_id='15' AND timestamp<'1389209549459' 
ORDER BY timestamp DESC LIMIT 2) t
>                 70465 Query     SELECT MAX(timestamp) FROM (SELECT 
> timestamp FROM data WHERE channel_id='15' AND 
> timestamp>'1389295949459' ORDER BY timestamp ASC LIMIT 2) t
>                 70465 Query     SELECT aggregate.type, 
> COUNT(aggregate.id) AS count FROM aggregate INNER JOIN entities ON 
> aggregate.channel_id = entities.id WHERE uuid = 
> '9a7ed6c0-f2dc-11e2-b13e-b9abb50897a8' GROUP BY type HAVING count > 0 
> ORDER BY type DESC
>                 70465 Query     SELECT 
> UNIX_TIMESTAMP(FROM_UNIXTIME(MIN(timestamp) / 1000, "%Y-%m-%d")) * 
> 1000 FROM aggregate WHERE channel_id='15' AND type='3' AND 
> timestamp>='1388227905662'
>                 70465 Query     SELECT 
> UNIX_TIMESTAMP(DATE_ADD(FROM_UNIXTIME(MAX(timestamp) / 1000, 
> "%Y-%m-%d"), INTERVAL 1 day)) * 1000 FROM aggregate WHERE 
> channel_id='15' AND type='3' AND timestamp<'1389296017384'
>                 70465 Query     SELECT SUM(count) FROM (SELECT 
> COUNT(1) AS count FROM data WHERE channel_id = '15' AND ( timestamp >= 
> '1388227905662' AND timestamp < '1388185200000' OR timestamp >= 
> '1388271600000' AND timestamp <= '1389296017384') UNION SELECT 
> SUM(count) AS count FROM aggregate WHERE channel_id = '15' AND type = 
> '3' AND timestamp >= '1388185200000' AND timestamp < '1388271600000') 
> AS agg
>
>
> ...also alles richtig und muss damit leben, dass Schmidts Katze bei 
> mir nicht mag...?

... das war dann wohl auch ein Hauptgrund für die Lahmheit: jetzt hab 
ich das mysql-logging abgedreht, und siehe da... miau.... ;)
Das Logging kostet einfach zu viel Performance auf der kleinen Kiste...

Also: Logging zugedreht... tataaaaa.... 11 Sek. für die Jahresansicht 
eines Temperatur-Channels (allerdings nur Werte aus dem 2. Halbjahr) - 
das ist cool..

Sieht gut aus, vielen Dank!!
Schönen Abend...
Heiko



More information about the volkszaehler-dev mailing list