nolversteeg
Gebruiker
- Lid geworden
- 5 sep 2011
- Berichten
- 10
Geacht forum,
Ik ben al redelijk lang aan het stoeien met Mysql, wat ik wil werkt, alleen ik heb het vermoeden dat dit beter of anders kan wat betreft snelheid.
Er draait een systeem wat waarden iedere minuut in de Mysql database zet , alleen de notatie is op zijn Amerikaans.
Nu laat ik Mysql iedere minuut een event uitvoeren die de data in 4 nieuwe tabellen zet met de juiste waarden.
[SQL]insert into station (RecDateTime, Channelindex,tempout,hitempout,lowtempout,humout,dewpoint,lowwindchill,Humidex,heatindex,date,time,Datum)
SELECT `RecDateTime` , `Channelindex`,
CASE WHEN `issdata`.TempOut = 32767 THEN NULL ELSE (((`issdata`.TempOut /10) -32) /1.8) END,
CASE WHEN issdata.HiTempOut = -32768 THEN NULL ELSE (((`issdata`.HiTempOut /10) -32) /1.8) END,
CASE when issdata.LowTempOut = 32767 THEN NULL ELSE(((`issdata`.LowTempOut /10) -32) /1.8) END,
CASE WHEN issdata.humout = 255 THEN NULL ELSE `issdata`.humout END,
CASE WHEN issdata.DewPoint = 32767 THEN NULL ELSE (((`issdata`.DewPoint /10) -32) /1.8) END,
CASE When issdata.LowWindChill = 32767 Then NULL ELSE (((`issdata`.LowWindChill /10) -32) /1.8) END,
((((`issdata`.`TempOut` /10) -32) /1.8) + 5/9 * ((6.112 * exp (17.62 * (((`issdata`.`TempOut` /10) -32) /1.8) / (243.12 + (((`issdata`.`TempOut` /10) -32) /1.8)))*( `issdata`.`humout`)/100) - 10)),
CASE When issdata.Heatindex = 32767 THEN NULL ELSE(((`issdata`.Heatindex /10) -32) /1.8) END ,
cast(`issdata`.`RecDateTime` as date),
cast(`issdata`.`RecDateTime` as time),
Date_format(`issdata`.`RecDateTime`, '%d/%m/%Y') AS Datum
FROM `issdata`
WHERE `ChannelIndex`=0 and `issdata`.`RecDateTime` NOT IN (select RecDateTime From station )
ORDER BY `recdatetime` DESC;
[/SQL]
Bovenstaand is zoals ik dit nu doe om een nieuwe tabel te maken,en zo zijn er nog 4 te gaan.
het is de database van mijn weerstation (envoy8x).
Vraag: Kan dit op een betere manier zodat ik snelheid krijg in het uitvoeren van dit event. Omdat ik in PHP ook nog heel veel moet doen om deze data op de website te krijgen.
Misschien kort door de bocht , een schop in een andere richting zou welkom zijn, ik ben geen programmeur, maar bijt me wel vast om het in goede orde te krijgen.
Bij voorbaat dank .
Resultaat van mijn programmeer kunsten zijn te zien op www.meteoeersel.nl
Nol Versteeg
.
Ik ben al redelijk lang aan het stoeien met Mysql, wat ik wil werkt, alleen ik heb het vermoeden dat dit beter of anders kan wat betreft snelheid.
Er draait een systeem wat waarden iedere minuut in de Mysql database zet , alleen de notatie is op zijn Amerikaans.
Nu laat ik Mysql iedere minuut een event uitvoeren die de data in 4 nieuwe tabellen zet met de juiste waarden.
[SQL]insert into station (RecDateTime, Channelindex,tempout,hitempout,lowtempout,humout,dewpoint,lowwindchill,Humidex,heatindex,date,time,Datum)
SELECT `RecDateTime` , `Channelindex`,
CASE WHEN `issdata`.TempOut = 32767 THEN NULL ELSE (((`issdata`.TempOut /10) -32) /1.8) END,
CASE WHEN issdata.HiTempOut = -32768 THEN NULL ELSE (((`issdata`.HiTempOut /10) -32) /1.8) END,
CASE when issdata.LowTempOut = 32767 THEN NULL ELSE(((`issdata`.LowTempOut /10) -32) /1.8) END,
CASE WHEN issdata.humout = 255 THEN NULL ELSE `issdata`.humout END,
CASE WHEN issdata.DewPoint = 32767 THEN NULL ELSE (((`issdata`.DewPoint /10) -32) /1.8) END,
CASE When issdata.LowWindChill = 32767 Then NULL ELSE (((`issdata`.LowWindChill /10) -32) /1.8) END,
((((`issdata`.`TempOut` /10) -32) /1.8) + 5/9 * ((6.112 * exp (17.62 * (((`issdata`.`TempOut` /10) -32) /1.8) / (243.12 + (((`issdata`.`TempOut` /10) -32) /1.8)))*( `issdata`.`humout`)/100) - 10)),
CASE When issdata.Heatindex = 32767 THEN NULL ELSE(((`issdata`.Heatindex /10) -32) /1.8) END ,
cast(`issdata`.`RecDateTime` as date),
cast(`issdata`.`RecDateTime` as time),
Date_format(`issdata`.`RecDateTime`, '%d/%m/%Y') AS Datum
FROM `issdata`
WHERE `ChannelIndex`=0 and `issdata`.`RecDateTime` NOT IN (select RecDateTime From station )
ORDER BY `recdatetime` DESC;
[/SQL]
Bovenstaand is zoals ik dit nu doe om een nieuwe tabel te maken,en zo zijn er nog 4 te gaan.
het is de database van mijn weerstation (envoy8x).
Vraag: Kan dit op een betere manier zodat ik snelheid krijg in het uitvoeren van dit event. Omdat ik in PHP ook nog heel veel moet doen om deze data op de website te krijgen.
Misschien kort door de bocht , een schop in een andere richting zou welkom zijn, ik ben geen programmeur, maar bijt me wel vast om het in goede orde te krijgen.
Bij voorbaat dank .
Resultaat van mijn programmeer kunsten zijn te zien op www.meteoeersel.nl
Nol Versteeg
.
Laatst bewerkt door een moderator: