Mit MongoDB vs MySQL mit viel JSON-Felder?

Es ist ein microblogging-Art der Anwendung. Zwei Haupt-grundlegende Datenbank-Speicher auf null gesetzt sind:
MySQL oder MongoDB.

Ich bin Planung zu denormalize Menge von Daten I. e. Eine Abstimmung erfolgt auf ein post gespeichert wird in einem voting-Tabelle, auch eine Zählung erhöht wird, in den main-posts-Tabelle. Es gibt andere Aktionen, die mit der post zu (z.B. Wie, Stimme runter).

Wenn ich MySQL verwenden, einige der Daten besser passt als JSON als festes schema, für schnellere Suchvorgänge.

E. g.

POST_ID   |  activity_data

213423424 | { 'likes': {'count':213,'recent_likers' :
             ['john','jack',..fixed list of recent N users]} , 'smiles' : 
             {'count':345,'recent_smilers' :
             ['mary','jack',..fixed list of recent N users]}  }

Gibt es andere Komponenten der Anwendung, wo die Verwendung von JSON wird vorgeschlagen.
So, ein update JSON-Feld, die Reihenfolge ist:

  1. Lesen Sie die JSON python-Skript.

  2. Update der JSON -

  3. Speichern von JSON wieder in MySQL.

Wäre es gewesen, eine einzige Betrieb in MongoDB mit atomaren Operationen wie $push,$inc,$pull etc. Auch
Dokument Struktur von MongoDB passt meiner Daten gut.

Meine überlegungen bei der Auswahl der Daten zu speichern.

Bezüglich MySQL:

  1. Stabil und vertraut.
  2. Sicherung und-Wiederherstellung ist einfach.
  3. Zukunft einige änderungen am schema können vermieden werden, indem einige Felder als schemaless JSON.
  4. Möglicherweise Schicht von memcached früh.
  5. JSON-blobs werden statisch in einigen Tabellen wie die main, die Einträge werden aktualisiert, eine Menge, die in einigen anderen Tabellen wie die Post Stimmen, und mag.

Bezüglich MongoDB:

  1. Besser geeignet zum speichern von schema-weniger Daten als Dokumente.
  2. Zwischenspeichern könnten, werden vermieden, bis später.
  3. Manchmal die app kann sich schreiben intensive, MongoDB können besser auf jene Punkte, wo unsichere schreibt nicht ein Problem.
  4. Nicht sicher über die Stabilität und Zuverlässigkeit.
  5. Nicht sicher, wie einfach ist es, um die backup und restore.

Fragen:

  1. Sind wir wählten MongoDB, wenn die Hälfte der Daten ist schemaless, und wird als JSON gespeichert, wenn Sie MySQL?
  2. Einige Daten wie Haupt-posts ist kritisch, es wird also gespeichert werden, mit safe schreibt, die Schalter etc
    gespeichert werden unsichere schreibt. Ist diese Politik, die auf die Bedeutung der Daten und schreiben, die Intensität richtig?

  3. Wie einfach ist es, zu überwachen, sichern und wiederherstellen von MongoDB im Vergleich zu MySQL? Wir müssen planen, regelmäßige backups ( sprich täglich ), und diese wiederherstellen, mit Leichtigkeit im Falle einer Katastrophe. Was sind die besten Möglichkeiten, ich habe mit MongoDB zu machen es eine sichere Wette für die Anwendung.

Stabilität, Datensicherung, snapshots, Wiederherstellung, breitere Annahme I. e.Datenbank Haltbarkeit sind die Gründe, verweist mich
für die Verwendung von MySQL als RDBMS+NoSql, obwohl eine NoSQL Dokument-Speicher dienen könnte meine Zwecke besser.

Bitte konzentrieren Sie Ihre Ansichten über die Wahl zwischen MySQL und MongoDB unter Berücksichtigung der Datenbank-design habe ich im Hinterkopf. Ich weiß, es könnte besser sein, Wege zu planen, Datenbank-design mit entweder RDBMS oder MongoDB Dokumente. Aber das ist nicht der aktuelle Schwerpunkt meiner Frage.

UPDATE : Von MySQL 5.7 ab, MySQL unterstützt eine reiche native JSON-Datentyp, die Daten die Flexibilität sowie reichhaltige JSON-Abfragen.

https://dev.mysql.com/doc/refman/5.7/en/json.html

  • Ernst nehmen tun Sie das nicht. Sollten Sie nicht verwenden json in sql als Sie nicht lange die Möglichkeit haben, Abfragen. Wenn Sie nicht brauchen, um Abfrage, die Daten, die Sie verwenden können, jede Binär-format (beinhaltet json). Mongodb verwendet json, weil es es versteht und kann Abfragen. postgresql kann es unterstützen, ich habe nicht versucht. Aber trotzdem sollten Sie die Verwendung von mysql in der normalen mysql Weg. Sie brauchen nichts anderes, bis Sie nach einer dedizierten Maschine zu bedienen und haben-Betrag schreibt, wächst. Wenn Sie möchten, um zu versuchen, mongodb machen eine Spielzeug-app oder bereiten Sie sich, verbringen viel Zeit mit der Pflege - /Lern - /bug-oder andere Update.
  • Ich werde nicht Abfragen oder die Suche der Daten im json-Format. Sie werden nur verarbeitet, für das schreiben, wenn eine Aktion passiert, aber Lesen Sie immer durch den Primärschlüssel als ganzes json.
  • hmm ok, aber meinen letzten Satz. Auch bewusst sein, sicher schreibt (die Sperrung) und dass die 32-bit bedeutet, dass deine db ist beschränkt auf 2GBs
InformationsquelleAutor DhruvPathak | 2012-10-17
Schreibe einen Kommentar