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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.