2017-02-20 6 views
0

Let's-
Ich habe 1.000.000 Benutzer angemeldet. Es wird eine Art Facebook-Site (nicht wirklich Facebook) sein.Wie soll ich die MySQL-Datenbank anordnen?

So habe ich eine riesige Menge an Daten in meiner Datenbank gespeichert werden. Bitte helfen Sie mir bei der Auswahl des Datenbankdesigns.

Entwurf 1:

Database count : 1,000,000 [i.e. user_1, user_2, user_3] 
Table count  : 15 Per Database 
Row Count   : 100+ Per Table 

Design 2:

Database count : 15 
Table count  : 1,000,000 Per Database 
Row count   : 100+ Per Table 

Design 3:

Database count : 1 
Table count  : 15 Per Database 
Row count   : 10,000,000++ Per Table 


Was soll ich wählen?

Design 1: Welche haben riesige Menge von Datenbanken im Server.
Design 2: Was hat riesige Menge von Tabellen in einer Datenbank.
Design 3: Was hat eine riesige Menge an Zeilen in einer Tabelle.

+1

Wenn Sie sich für # 1 oder # 2 entscheiden, haben Sie die geringste Ahnung, wie Sie Migrationen für 1 Million Objekte verwalten würden? –

+2

Wenn Sie von einem RELATIONAL DBMS profitieren wollen, welches mysql ist, ist die 3 die einzige ernsthafte Lösung. Ansonsten sollten Sie Hadoop oder etwas anderes verwenden. –

+1

Locker verbunden: [MySQL kann mehr als eine Stunde dauern] (http://stackoverflow.com/questions/42348578/mysql-can-take-more-than-an-hour-to-start) –

Antwort

1

Option 1 kann in der Praxis tatsächlich praktisch unmöglich sein, da jede Datenbank ihre eigenen Ressourcen benötigt und Sie wahrscheinlich jedes System ausschöpfen werden, mit dem Sie es implementieren. Und es gibt den operationellen Albtraum, jedes Mal, wenn ein neuer Benutzer beitritt, eine neue Datenbank einzurichten. Diese Auswahl stimmt mit der Wörterbuchdefinition von "verrückt" überein.

Option 2 ist nur geringfügig hinter Option 1 auf der Wahnsinnsskala, außer dass es möglich ist, zu implementieren.

Option 3 ist keine große Sache und ist eine Situation, die routinemäßig auftritt. Verwenden Sie diese Option.

Für eine traditionelle relationale Datenbank gelten bis zu 20 Millionen Zeilen als "klein" für eine Tabelle (keine Angabe, nur Erfahrung). 20M-200M ist "mittel", darüber "groß".

Für nicht-traditionelle RDBMS, zB Rotverschiebung, und NoSql DBs (Mongo, Cassandra, Hadoop, usw.) 10M Reihen ist "winzig" und Milliarden von Reihen ist keine große Sache.

Verwandte Themen