Datenbank Design - database oder table

ony

New Member
#1
Hallo zusammen,
nach fast einem Jahr stilles Lesen muss ich nun doch auch meine Frage an euch loswerden.

Bei einer Webanwendung wie z.B. absence.io wie könnte dort das Datenbank Design aussehen?

Wenn wir fiktiv und beispielhaft davon aussgehen das 1000 Kunden 500.000 neue Datensätze am Tag generieren.
Keine großen Datensätze nur 2 Integer, eine Text und eine Timestamp Spalte. (Ist das überhaupt noch klein?)

Bei den großen Datenmengen würde man pro Kunden eine eigene Datenbank anlegen oder einfach alle Datensätze in eine Tabelle stecken und dann mit der WHERE Funktion den richtigen Kunden filtern?

Oder doch lieber zu etwas schnellerem wie Cassandra anstelle von mysql wechseln?

Wie ist eure Meinung darüber bzw wie würdet ihr das Modell umsetzen?

vielen Dank
OnY
 

dominikb

Well-Known Member
#2
Bei den großen Datenmengen würde man pro Kunden eine eigene Datenbank anlegen oder einfach alle Datensätze in eine Tabelle stecken und dann mit der WHERE Funktion den richtigen Kunden filtern?

Oder doch lieber zu etwas schnellerem wie Cassandra anstelle von mysql wechseln?
Allzu viel Ahnung habe ich davon leider auch nicht. Aber vermutlich läuft es letzten Endes nicht auf "viele Tabellen in wenigen DBs" oder "wenige Tabellen in vielen DBs", sondern auf "sehr viele Tabellen in vielen DBs" raus. :)

Nehmen wir mal Facebook als Extrembeispiel: Eine eigene Datenbank für jeden Kunden würde wahrscheinlich den Bogen überspannen und auch für redundante Tabellen sorgen. Diese Skalen haben mit einer Where-Bedingung auf eine einfache DB nichts mehr zu tun.

Die Frage ist da nicht "Cassandra oder MySQL" - stattdessen werden zig Services und eigene Technologien verwendet. Beispielsweise legt FB zum Cachen Memcached über die DB, es kommen unterschiedliche Datenbanksysteme (MySQL, HBase etc.) zum Einsatz und Cassandra wird für irgendeine Suchfunktion verwendet. Es wird wirklich viel Aufwand betrieben, um die "richtigen" Datenbanken zu schonen und die Zugriffe auf den Datenbestand rechnerisch günstig zu gestalten.

Falls du noch was zum Thema Architektur und Load Balancing bei großen Anbietern lesen möchtest: https://blog.keen.io/architecture-o...ook-netflix-airbnb-and-pinterest-9b7cd881af54
 

lano

Well-Known Member
c-b Experte
#3
Wenn wir fiktiv und beispielhaft davon aussgehen das 1000 Kunden 500.000 neue Datensätze am Tag generieren.
Also über ne Datenbank mit 1000 Kunden brauchen wir nicht reden.
500.000 Datensätze ... Kommt drauf an was. Bei zwei ints... naja.

Eine Datenbank findet es nett wenn sie in den RAM passt.
Der Server will richtig konfiguriert sein.
Tabellen finden es gut wenn zwischen den Daten keine Lücken sind.
Daten unbekannter Länge sind doof (TEXT).
Anständiger Index und ne gut formulierte Anfrage bewegen viel.
 
Oben