Am 20.02.22 um 15:58 schrieb Erik Schanze:
Hallo Andreas,


vielen Dank für deine ausführliche Antwort.

gern ;-)



Am 20.02.22 um 14:13 schrieb Andreas Kretschmer:
Wenn Du alle Werte eines Tages holen willst, hilft ein Index schon mal
ganz gewaltig. Ich hab das mal nachgestellt.
PostgreSQL 14.1 in einer lokalen Minikube-Kubernetes-Instanz, daher
nicht unbedingt schnell.


Angelegt wurde die Tabelle mit dem Kommando:

CREATE TABLE IF NOT EXISTS $tabelle (
    created timestamp NOT NULL default CURRENT_TIMESTAMP,
    c180 int(12) unsigned default NULL,
    c280 int(12) unsigned default NULL,
    PRIMARY KEY  (created)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Die Spalte "created" ist bei der Tabelle schon als "primary key"
eingestellt. Lt. Wikipedia wird da automatisch ein Index angelegt. Hilft
da zusätzlich noch einer?



ja, dann ist da impliziet ein Index und du brauchst keinen weiteren.



Du siehst, ohne Index ist die Abfrage Faktor 10 langsamer. Was hast Du
an Mengen von Datensätzen, daß das bei Dir so lange dauert?
(PostgreSQL führt die Abfrage auf 3 Cores aus, der Hauptprozess
startet 2 Worker-Prozesse)

2-minütliche Datensätze 11 Jahre lang. Der Logger ist ein Intel Atom
Z520 (1 Core, 2 Threads, 1,33MHz) und über nimmt auch die Verarbeitung
und Darstellung auf einer Webseite. Da braucht man Geduld. :-)

alles klar, da sind dann keine Wunder zu erwarten.




Btw: was mir grad auffällt, bei den gezeigten Lösungen bisher wird die
Differenz der Zeitspalte berechnet, die aber eigentlich immer 2
Minuten sein sollte, nach Deinen Ausführungen.
Ich habe die Differenz der Meßwerte zur vorherigen Messung berechnet,
was ist richtig?

Ich brauche die Zeitdifferenz der letzten zur vorletzten Zeile in der
Tabelle. Es sind nicht immer genau 2 min. Ich habe die
Zeitdifferenzberechnung jetzt in PHP gelöst. Ich dachte, es gibt da
einfache Time-Funktionen in (MY)SQL, weil der Timestamp ja von der
Datenbank geschrieben wird.


ja, ich versteh. MySQL ist nicht wirklich technologisch gesehen der Bringer, solche Window-Funktionen
gibt es da erst seit kurzer Zeit und das mag in PHP dann schneller sein.



So langsam wird mir wieder klar, warum ich seit dem Studium immer einen
großen Bogen um Datenbanken gemacht habe. Sie helfen Probleme zu lösen,
die wir ohne sie nicht hätten. ;-)


nun ja, ich verdiene mein Geld damit (aber nicht mit MySQL)


Andreas


--
2ndQuadrant, an EDB company
www.2ndQuadrant.com / www.enterprisedb.com


Antwort per Email an