MySql und Historisches Datenlogging/Alarming

tomatensaft

Level-2
Beiträge
159
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Abend,

hab mir mal Überlegt für meine Heimautomatisierung ein Historisches Logging einzurichten.

Habe da generell mal eine Frage zwecks Datenlogging. Wie is es denn am Sinnvollsten solch eine Db Aufzubauen. ?

Wenn ich mir die Werte mit Auto-ID,Tagname,Kommentar und Value in eine Tabelle schreibe, kommt ganz schön was zusammen.

Ist das so sinnvoll, oder sollte man das ganze aufteilen wie z.B. für jeden Tag eine neue Tabelle !?
 
Hallo,

ich würde Dir abraten, in Mysql zeitlich begrenzte Tabellen (eine Tabelle pro Stunde, Tag, Woche, Monat,...)zu führen.
Dafür ist ja MySQL viel zu schade. Es könnte auch sein, dass auch eine Begrenzung der Anzahl von Tabellen in einer
Datenbank gibt; ich würde auch mit Performace-Problemen bei vielen Tabellen rechnen.

Einfach ein Feld "LetzteAenderung" Type Timestamp in die Tabelle einsetzen, Index drauf und dann bei jeder
Selectanfrage das Datum spezifizieren. Bei Timestamp wird die aktuelle Zeit beim Insert/Updatebefehl verwendet
(Muß nicht im Update/Insert SQL drinstehen)
Habe dies schon öfter gemacht; ich habe auch schon Produktions-Daten von über 5 Mio Teilen
(ca. 70 Spalten/Variablen pro Teil) in einer Tabelle.
Wenn ich dann eine Abfrage starte, gebe ich immer einen Zeitbereich an (select * from Tabelle where LetzeAenderung > ....).

Gruß
S7_Programmer
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich sehe es auch so.
MySQL ist leitungsfähig genug um mit großen Datenmengen zurecht zu kommen.
Wir haben auch schon eine Maschinendatenerfassung mit MySQL realisiert.
Das ganze lief 7 Jahre und hatte am Schluß 2,3 Millionen Datensätze pro Tabelle.

Laufzeit einer Auswertung über alle Datensätze 14 Sekunden. Das ganze ohne großartige Optimierung und auf einem 400€ Office-Rechner.

Gruß
Dieter
 
Danke erst mal für euer Antworten,

dann würde das ganz ungefähr so aussehen ->

Index, Timespamp, Tag1, Tag2, Tag3, usw.....

und darunter die Jeweiligen Werte - und das ganze in eine Tabelle reinschreiben.
 
Hallo,
ich denke ich würde pro Tag eine Tabelle erstellen und die ganzen Wertänderungen erfassen.

Wenn du alle Tags in eine Tabelle schreibst erzeugst du damit viele unnötige Daten, es wird auch komplizierter wenn du Tags dazugeben möchtest. Oder weggeben.

Noch ein Vorteil: wenn du mal statistische Auswertungen für bestimmte Tags vornehmen willst, kannst du in der jeweiligen Tabelle einfach eine neue Spalte dazugeben und das berechnen lassen....

bg
bb
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich würde alles in eine Tabelle schreiben, aber nicht für jeden Tag eine Spalte anlegen. Sondern für jeden einfach eine neue Zeile. Vielleicht die Tags auch nur speichern wenn Sie sich geändert haben.
 
Zurück
Oben