Einzelnen Beitrag anzeigen

Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#38

AW: Tabellen für viele kleine Datensätze optimieren

  Alt 10. Jul 2014, 20:46
Meinst Du denn im Ernst, Google, Amazon & Co verwenden rollierenden Text-Dateien?
Die verwenden aber auch nicht MySQL...

Aber -blöd- nun wollten wir doch die Werte der letzten drei Monate jeweils zwischen 8 und 10 Uhr, immer Dienstags, weil der Kunde meint, wenn der Bäcker die Brötchen bringt (immer Dienstags zwischen 8-10 Uhr), spinnen die Messpunkte.
Bedenke aber, dass dir der MySQL-Index dort keine Vorteile bringt. Die Datensätze sind dann zwar schön nach Timestamp sortiert, aber was bringt dir das, wenn du von jedem Tag die Datensätze zwischen 8 und 10 Uhr brauchst. Läuft dann eh auf einen Full/Partial Table Scan hinaus. Kann dadurch schon sein, dass bestimmte Abfragen mit der Zeit langsamer werden.

Und eigentlich sind alle Abfragen, die mir einfallen, derart, dass sie vom Index nicht profitieren. Auch wenn man z.B. den Durchschnitts-/Max-/Minwert in einem Zeitabschnitt bestimmen will. Das RDBMS findet über den Index zwar recht schnell den ersten Datensatz im Zeitabschnitt, aber muss dann doch alle Datensätze in diesem Abschnitt durchscannen, was den Großteil der Zeit ausmachen wird.

Und durch den Index auf der Zeitspalte (den man natürlich trotzdem braucht) wird natürlich auch das Einfügen mit der Zeit langsamer, zwar „nur“ logarithmisch zur Anzahl der Datensätze, aber bei sekündlichem Logging über Jahre hinweg ist das vielleicht auch nicht zu unterschätzen.

Ich finde du übertreibst auch was den Aufwand von Textdateien angeht. Das ist doch wirklich die simpleste Form, Daten zu speichern und zu lesen überhaupt. Ich finde auch nicht, dass man damit das Rad neu erfindet, ganz im Gegenteil.
  Mit Zitat antworten Zitat