Re: SQL-Frage

2022-02-21 Diskussionsfäden Rico Koerner
Hallo Erik, Am 20.02.22 um 15:58 schrieb Erik Schanze: 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

Re: SQL-Frage

2022-02-20 Diskussionsfäden Andreas Kretschmer
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. PostgreSQ

Re: SQL-Frage

2022-02-20 Diskussionsfäden Erik Schanze
Hallo Andreas, vielen Dank für deine ausführliche Antwort. 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 ni

Re: SQL-Frage

2022-02-20 Diskussionsfäden Andreas Kretschmer
Am 19.02.22 um 15:21 schrieb Erik Schanze: Am 19.02.22 um 14:52 schrieb Sebastian Weckend: Deswegen dauert es wahrscheinlich so lang, da ohne Index für die Sortierung alle Zeilen angeschaut werden müssen. Entweder solltest du für den Timestamp einen Index hinzufügen (was den aber unique mache

Re: SQL-Frage

2022-02-19 Diskussionsfäden Erik Schanze
Am 19.02.22 um 14:52 schrieb Sebastian Weckend: Deswegen dauert es wahrscheinlich so lang, da ohne Index für die Sortierung alle Zeilen angeschaut werden müssen. Entweder solltest du für den Timestamp einen Index hinzufügen (was den aber unique machen dürfte, also u.U. nicht gewollt) oder einen p

Re: SQL-Frage

2022-02-19 Diskussionsfäden Sebastian Weckend
Deswegen dauert es wahrscheinlich so lang, da ohne Index für die Sortierung alle Zeilen angeschaut werden müssen. Entweder solltest du für den Timestamp einen Index hinzufügen (was den aber unique machen dürfte, also u.U. nicht gewollt) oder einen primary key hinzufügen, nach dem du sortieren k

Re: SQL-Frage

2022-02-19 Diskussionsfäden Erik Schanze
Am 19.02.22 um 14:08 schrieb Sebastian Weckend: Wahrscheinlich wäre es in dem Beispiel besser, ORDER BY id DESC in der query und der LAG function zu nutzen. Das funktioniert aber nur, wenn die Einträge auch in zeitlicher Reihenfolge geschrieben werden. Wäre aber spannend zu wissen. Ich habe kei

Re: SQL-Frage

2022-02-19 Diskussionsfäden Sebastian Weckend
Wahrscheinlich wäre es in dem Beispiel besser, ORDER BY id DESC in der query und der LAG function zu nutzen. Das funktioniert aber nur, wenn die Einträge auch in zeitlicher Reihenfolge geschrieben werden. Wäre aber spannend zu wissen. VG Sebastian Am 19.02.22 um 13:59 schrieb Sebastian Wecken

Re: SQL-Frage

2022-02-19 Diskussionsfäden Sebastian Weckend
Hallo Erik, ich bin kein SQL Experte, aber bei großen Tabellen kann es evtl. schneller sein, wenn du mit den richtigen indices arbeitest. Ich kenne mich mit MariaDB nicht aus, aber da kann man sich sicher auch mit EXPLAIN anschauen, was die query macht und dann optimieren. Ansonsten einfach

Re: SQL-Frage

2022-02-19 Diskussionsfäden Erik Schanze
Hallo Sebastian, vielen Dank für deine schnelle Antwort. Das Kommando funktioniert, aber dauert sehr lange: MariaDB [siemens]> SELECT TIMESTAMPDIFF(SECOND, created, LEAD(created) OVER (ORDER BY created DESC)) AS diff FROM log1 ORDER BY created DESC LIMIT 1; +--+ | diff | +--+ | -121 |

Re: SQL-Frage

2022-02-19 Diskussionsfäden Sebastian Weckend
Hallo Erik, schau dir mal die window functions [0], besonders LEAD [1] und LAG [2] an. Wenn der Datentyp von created TIMESTAMP ist und du nur den Unterschied der beiden neuesten Zeilen in der DB möchtest, dann so was ähnliches wie (ungetestet): SELECT TIMESTAMPDIFF(SECOND, created, LEAD(cre