MySQL Wie speichere ich Daten zeitlich abhängig?

Ich versuche mal mein Problem an einem praktischen Beispiel zu erklären.

Mal angenommen ich möchte den Wert von 50k verschiedener Aktien mit einem Zeitstempel erfassen. Ich möchte alle 10 Minuten ein Update der Daten, sodass ich mir später den zeitlichen Verlauf einer bestimmten Aktie ausgeben kann um sie z.B. in einem Grafen dar zu stellen.
Ich habe absolut keine Vorstellung wie so eine Datenbankstruktur aussehen muss. Trägt man einfach alles in eine Tabelle ein? Dann hat die tabelle nach 24h bereits 7.200.000‬ Einträge.

Bin etwas überfordert ^^
 
K

kneitzel

Die Idee von @Meniskusschaden ist schon nicht schlecht, aber die Frage ist, wie viel das bringen wird. Ich erwarte dadurch keine zu große Einsparung.

Und wenn man entsprechende Anforderungen hat, dann sollte man auch klar die Anforderungen erfüllen.
- Wer entsprechend Daten haben will, muss natürlich den Speicherplatz vorhalten.
- Wer entsprechend Daten abfragen will, der muss diese auch verarbeiten können.

=> Also man kann schauen, was man genau braucht: Eine ID pro Datensatz, AktienID, Zeitstempel, Aktienwert. Ggf Platz pro Datensatz für Indices. Und dann kann man berechnen, was man da braucht.... Und wenn da ggf. 1 KB pro Datensatz anfällt, dann bedeutet das ggf. 7,2 GB / Tag. Aber Datenbanken mit zig TB sind heute kein Thema mehr ...
=> IO Leistung ist wichtig. 50.000 Datensätze sollen ja zügig ausgelesen werden und gespeichert werden. Da muss man dann die Anforderungen entsprechend formulieren.

Und dann kann man ein entsprechendes Design machen. Daten können ggf. aufgesplittet werden. Datenbankserver müssen ausreichend dimensioniert werden und dann ist das auch kein großes Thema. Datenbanken beherrschen ja meist sowas wie Partitioning und so...

Wichtig ist auch, dass man beim Vorschlag von @Meniskusschaden alle Vor- und Nachteile abprüft! Nach meiner Erfahrung sind die Datenbankgrößen nicht ganz so wild (was sind 7 GB am Tag?) und wichtiger sind IO Last. Wenn ich generell Daten als Bulk Import fahre, dann kann man da sehr schnell Daten schreiben. Wenn ich aber für jeden Datensatz erst einmal den letzten Wert auslesen muss, dann ist das sowohl auf dem System, das die Arbeit macht, eine deutlich höhere Last aber auch auf der Datenbank wird dann deutlich mehr Last auf der Tabelle erfolgen ...

Aber ohne genaue Anforderungen und so ist da kaum etwas zu sagen. Möglichkeiten gibt es sehr viele und ich hoffe, ich konnte auch ein paar Anregungen geben ....
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben