Re: SQL-Frage
Andreas Kretschmer <[email protected]>
| Newsgroups | gmane.user-groups.linux.dresden |
|---|---|
| Message-ID | <[email protected]> |
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