ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
390
390
EMPFEHLEN
-
Hallo,
ich habe da eine kleine Frage zur Performance einer Datenbank
ich möchte im bereich von 100-200ms Messwerte speichern sind so um die 100 bis 200 Werte
jetzt bin ich am überlegen was besser von der Performace ist
eine große Tabelle mit allen werten oder mehre in Gruppen aufgeteilte Tabellen a ca 20-40 Werte oder für jeden Wert eine Tabelle?
Hat da jemand schon Erfahrung gemacht bei einer solchen Datenmenge?
Die Datenbank ist noch nicht ausgewählt in Frage kommen SQLite, PostgresSQL, MySQL und MS SQL Server
Gruß
ScooB
-
Egal welche der Datenbanken du wählst. Bei 200 Einträgen reden wir noch nicht von grossem Datenaufkommen.
So ab 100'000 kannst du langsam überlegen wie du sie aufteilen willst.
Das aufsplitten auf mehrere Gruppen-Tabellen macht es bei diesen Datenmengen eher langsamer wenn du Gruppenübergreifende Auswertungen haben willst.---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Danke für die schnelle Antwort aber ich glaube ich habe mich da etwas falsch ausgedrückt
ich meine nicht 200 Einträge sondern 200 Spalten in einer Tabelle
es werden jede 200ms bis zu 200 werte für einen Eintrag gespeichert die dann über ca 30 Tage gespeichtert bleiben.
-
Also werden pro Sekunde 5 Zeilen mit 200 Feldern geschrieben.
Also rechnest du mit (60sec*60min*24h*30days*5perSec) 12'960'000 Zeilen. In Worten: Mehr als 12 Millionen Datensätze.
Da brauchst du als erstes eine kräftige DB. MS SQL oder Oracle.
Dann gute Indexe und saubere Felddefinitionen.
Kannst du die Felder normalisieren?
Ansonsten würd ich es trotzdem zusammen lassen. Joins in Kombination mit Full Table Scans brauchen länger als ein Full Table Scan auf nur eine Tabelle. Wenn du viele Spalten anzeigen möchtest, kommst du am Full Table Scan fast nicht mehr vorbei. Einzig für die Selektionen kannst du da auf einen Index-Scan zurückgreifen---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Genau sollen dann um die 12 Millionen Datensätze in der DB vorhanden sein.
Naja normalisieren kann man da nix mehr wird im Prinzip nur nen Zeitstempel und die Werte
| Zeitstempel | Wert 1 | Wert 2 | Wert 3 | Wert N |
Kann man in einer Tabelle Spalten reservieren ? z.B. damit ich falls Werte dazukommen die Tabelle erweitern kann?
-
Du kannst immer Spalten hinzufügen. 'ALTER TABLE' ist da das Stichwort. Also, blos keine leeren Spalten für später mitführen.
Wieviele Werte sind es denn?---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
Ja das ich Spalten hinzufügen kann ist mir bewusst nur wollte ich wissen ob es generell eine möglichkeit der Reservierung gibt.
Das ergibt sich noch dann wieviele Werte es sind kann sein das ich mit 100 Starte allerdings dann doch mit der Zeit noch 50 oder so hinzufügen muss
Danke
-
Klar, du kannst ja einfach Spalten Wert1 bis Wertn, wobei n die maximale Spaltenzahl der DB ist, machen.
Je mehr Dummy-Spalten du mitführst, umso schlechter für die Performance. möglichst schlank halten und dann erweitern, wenn es notwendig wird.
ggf. Solltest du die Tabelle sogar normalisieren. Ich kann aber nicht sagen ob es bei diesen Datenmengen gut oder Schlecht für die Performance ist.---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
Design für große und kleine Auflösungen
Von ZodiacXP im Forum CSSAntworten: 7Letzter Beitrag: 18.07.11, 16:49 -
Brauche eine (kleine - mittlerweile große) Denkhilfe bei meiner Query
Von fristan im Forum Relationale DatenbanksystemeAntworten: 2Letzter Beitrag: 15.04.08, 14:39 -
große und/oder kleine Objekte
Von Spamjam im Forum Cinema 4DAntworten: 0Letzter Beitrag: 21.06.07, 19:34 -
Kleine Performance Frage
Von SantaCruze im Forum Relationale DatenbanksystemeAntworten: 4Letzter Beitrag: 04.03.07, 15:48 -
kleine Buchstaben in große umwandeln ? gibs da ne funktion ?
Von HammerHe@rt im Forum PHPAntworten: 3Letzter Beitrag: 28.02.02, 14:17





Zitieren

Login





