Antwort an „Rolf B“ verfassen

Hallo Henry,

mir ist nicht ganz klar, wie Du im Moment vorgehst. Du hast die writeplc- und die datapoints-Tabellen, aber wie genau der Datenfluss ist, das habe ich nicht verstanden und ich glaube, du hast es auch nicht vollständig beschrieben. Im Moment gewinne ich den Eindruck, dass Du 2x pro Sekunde einen Satz Werte in die writeplc-Tabelle schreibst, daraus dann irgendwie die datapoints-Tabelle befüllst und die writeplc-Tabelle wieder löschst, damit der nächste Messpunkt eingetragen werden kann.

Ist das so? Welche Rolle spielt dabei dieser `plcvarname LIKE '{$plcname}%' Filter? Wieviele Sätze hat die writeplc-Tabelle, gibt es einen Index über diese Spalte und wenn ja, wird er überhaupt genutzt? Hast Du einen EXPLAIN gemacht? Fehlt der Index nämlich oder beschließt MariaDB, dass seine Nutzung nicht hilft, dann gibt es nämlich einen Tablescan und der kostet Zeit. Die Frage ist dann, ob ein geteiltes Medium (eine Tabelle für alle) hier überhaupt sinnvoll ist und ob eine SQL-Tabelle die beste Idee ist. Man könnte ja jeden Messpunktsatz auch serialisieren (mit PHP Serialize oder als JSON-Datei) und in eine Datei schreiben. Pro Gerät und Zeitpunkt immer neu.

Du beschreibst hier nämlich in deinem letzen Beitrag eine Realtime-Verarbeitung, bei der eine Kernkomponente zu langsam zu sein scheint, um der Frequenz von 2 Messpunkten pro Sekunde standhalten zu können. Die Gründe dafür können vielfältig sein

  • zu langsame Geräte
  • Geräte, die nicht nur für den Realtime-Prozess genutzt werden und den Realtime-Prozess damit ausbremsen (bzw. PHP oder SQL-Server auf einem shared Host)
  • ungünstiges DB-Design (Indexe?)
  • ineffiziente Programmierung.

Ob das alles ordentlich konzipiert ist, weißt nur Du. Ob ich das besser könnte als Du, wage ich nicht zu behaupten. Realtime ist nicht unbedingt mein Erfahrungsschwerpunkt.

Zur Zeit betrachten wir nur den letzten Punkt, und die Effizienz auch gar nicht wirklich beleuchtet, weil Du ja viel zu wenig über dein Gesamtsystem erzählt hast. Oder vielleicht doch erzählt, aber es ist in älteren Threads und ich habe es wieder vergessen 😳.

Vielleicht ist die writeplc-Tabelle als "Datenpuffer" ja gar nicht die sinnvollste Lösung. Ich weiß nur nicht, ob man die erforderliche Analyse hier im Forum überhaupt durchführen kann.

Rolf

--
sumpsi - posui - obstruxi
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar
freiwillig, öffentlich sichtbar

Ihre Identität in einem Cookie zu speichern erlaubt es Ihnen, Ihre Beiträge zu editieren. Außerdem müssen Sie dann bei neuen Beiträgen nicht mehr die Felder Name, E-Mail und Homepage ausfüllen.

abbrechen