TS: 50 Mio Datensätze Zuordnung, Abfragen, Performance

Beitrag lesen

Hallo und guten Tag,

Nimm die erste Variante, dann gibst du dem DBMS die Chance selber eine Index-Struktur aufzustellen, um die Tabelle effizient zu verwalten. Bei einem ausbalancierten Baum als Indexstruktur hast du zum Beispiel eine obere Laufzeitschranke von O(log(n)), wobei n der Anzahl der Datensätze entspricht. Das bedeutet für dein Beispiel, dass der Server log2(50.000.000) ~= 26 Vergleiche auf der Index-Struktur ausführen müsste, um zu erfahren wo der gesuchte Datensatz zu finden ist. Und wenn es statt 50.000.000 nun 5.000.000.000 Einträge sind? Rechne es ruhig mal aus.

Das Problem ist nicht das Lesen, sondern das Neuschreiben des Index. Und das kann leider nicht verzögert stattfinden, da schon der nächste Besucher den Index wieder benötigt.

Die Idee mit der Partionierung finde ich daher ganz smart.

Alternativ kann man auch für jeden Teilnehmer eine separate "Frage-schon-gehabt"-Tabelle führen. Aber wenn ich das richtig verstanden habe, darf die Frage überhaupt nicht mehr vorkommen, wenn sie schon einmal ausgelobt war. Dann geht das leider auch nicht.

Es gibt eine goldene Regel beim DB-Design: Arbeite mit dem DBMS und nicht dagegen.

Genau, deshalb würde man einen Index auch nicht bei jeder Veränderung sofort zurückschreiben lassen, wenn es die Aufgabenstellung zulässt. Das ist hier aber leider nicht möglich.

Grüße
TS

--
es wachse der Freifunk
http://freifunk-oberharz.de