Announcement

Collapse
No announcement yet.

Lange Tabelle teilen? Frage zu Modell

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Lange Tabelle teilen? Frage zu Modell

    Hallo,

    eine Tabelle (MySQL) mit numerischen Messwerten wird ca. 500 Mio. Zeilen enthalten. Es sind immer zwei verbundene Messreihen mit den gleichen Attributen (12 ints und floats).
    Man könnte die Messreihen trennen und zwei Tabellen erstellen. Jede Tabelle hätte eine relationale Beziehung zu einer gemeinsamen Obertabelle (1..n), aber nicht untereinander.

    Ist es aus Gründen der Performance (insbesondere SELECT) sinnvoll, eine solche Tabelle zu teilen, dh. die Messreihen zu trennen um die Zeilenzahl zu reduzieren?

    Ich denke, die Frage gehört nicht in die MySQL-Gruppe.

    Viele Grüße
    PlutoDerPlanet
    (neu hier)

  • #2
    Wenn du es schaffst das die Daten vollständig aus einem Index kommen und keinen Tabellenzugriff nötig ist wird eine Tabelle performanter sein. Wenn die Lokalität durch die Sortierung der Tabelle so gegeben ist das beide Datensätze mit hoher Wahrscheinlichkeit in der gleichen Datenpage der Tabelle liegen ist eine Tabelle vermutlich immer noch performanter. Wenn möglich wäre es wohl am besten die Tabelle nach irgendeinem Kriterium zu partitionieren. Messreihen hört sich nach etwas an an dem ein Zeitpunkt hängt. Der Zeitpunkt wäre dann ein geeigneter Kandidat um die Tabelle zu partitionieren. Dann solltest du immer nur einen Zugriff auf eine deutlich kürzere Tabelle haben was die Sache beschleunigt.

    Das war eine allgemeine Antwort da ich keinen näheren mySQL Erfahrungen habe. Aber die genaue Beantwortung der Frage ist hochgradig Datenbank abhängig einschließlich Konfiguration, zur Verfügung stehendes Subsystem und Indexierung. Ohne solche Daten bleibst bei Vermutungen.

    Comment


    • #3
      Die Teilung bzw. Spaltung der Tabelle kann Sinn machen, das hängt aber von den Auswertungsbedürfnissen ab.

      Wenn bekannt ist, dass vorwiegend das komplette Wertepaar abgefragt wird, ergibt eine Spaltung die doppelte Last bei der Abfrage eines Satzes.
      Ich weiß nicht, wie filigran by mySQL das logische Datenmodell physikalisch festgelegt werden kann, aber falls es möglich ist pro Spalte den Speicherort -/Datei anzugeben, würde ich es einer Spaltung vorziehen.

      500 mio Messwerte sind aber auch eine Hausnummer, bei der man sich genau den Auswertungs- und Abfragebedarf anschauen muss. Erfahrungsgemäß hat man häufig ungültige, unvollständige Messwerte, es interessieren eher Trends als Einzelwerte, spannend sind vielleicht eher zeitlich lineare Werte als vollständige nichtlineare Daten usw. usw.
      Sprich, Du möchtest vielleicht eher eine separate Datawarehouse DB, die aufbereitete Daten anbietet.
      Gruß, defo

      Comment

      Working...
      X