3 Stimmen

Protokolltabelle mit Millionen von Zeilen. Was nun?

Ich habe eine Protokolltabelle mit Millionen von Zeilen. Ich denke darüber nach, die Daten in mehrere Tabellen aufzuteilen (z.B. LoginHistory, ExceptionHistroy, PaymentProcessingHistory, usw.) Wie nennt man das, wenn man eine große Tabelle mit vielen Zeilen (nicht Spalten) nimmt und mehrere Tabellen erstellt?

Mein aktuelles Log-Tabellenschema sieht so aus: LogID, LogMessage, LogReason, LoggedBy, LoggedOn, etc.

Das Problem ist, dass ich zu viele Dinge in eine Tabelle packe, denke ich? Vielleicht ist die Tabelle zu allgemein gehalten?

Danke

3voto

D'Arcy Rittich Punkte 159655

Dies wird als Datenpartitionierung bezeichnet.

3voto

T.J. Crowder Punkte 948310

Sharding ist der Begriff des Tages. Aus dem Link:

Die horizontale Partitionierung ist ein Prinzip des Datenbankdesigns, bei dem die Zeilen einer Datenbanktabelle getrennt gehalten werden, anstatt sie nach Spalten aufzuteilen (wie bei der Normalisierung). Jede Partition bildet einen Teil einer Scherbe die sich wiederum auf einem separaten Datenbankserver oder an einem anderen physischen Ort befinden kann.

2voto

code4life Punkte 15309

Ich denke, Sie sollten sich Folgendes ansehen horizontale Unterteilung . Die horizontale Partitionierung ist mehr oder weniger eine Untermenge des Sharding.

Weitere Einzelheiten zur horizontalen Partitionierung finden Sie unter dem folgenden Wikipedia-Link:
http://en.wikipedia.org/wiki/Partition_%28database%29

Sie haben nicht erwähnt, welche DB-Technologie Sie verwenden, aber hier sind einige technische Links, die Sie bei der Partitionierung Ihrer Daten unterstützen können:

IBM DB2-Partitionierung
MySQL-Partitionierung
Oracle-Partitionierung
SQL-Server-Partitionen
PostgreSQL-Partitionierung
Sybase ASE 15.0 Partitionierung

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X