Ich bin gerade dabei, eine hochskalierbare Anwendung zu entwerfen, in der viele Daten gespeichert werden müssen. Zum Beispiel speichert es viel über Benutzer und dann Dinge wie viele ihrer Nachrichten, Kommentare usw. Ich habe MySQL schon immer verwendet, aber jetzt möchte ich etwas Neues wie couchdb oder ähnliches ausprobieren, das nicht SQL ist.
Hat jemand irgendwelche Gedanken oder Anleitungen dazu?
Antworten:
Hier ist ein Zitat aus einem kürzlich veröffentlichten Blog-Beitrag von Dare Obasanjo .
Zu dem ich nur hinzufügen kann, dass der Wechsel von MySQL, wo Sie zumindest einige Erfahrung haben, zu CouchDB, wo Sie keine Erfahrung haben, bedeutet, dass Sie sich mit einer ganzen Reihe neuer Probleme befassen und verschiedene Konzepte und Best Practices lernen müssen. Das ist an sich schon wunderbar (ich spiele zu Hause mit MongoDB und mag es sehr), aber es sind Kosten, die Sie bei der Schätzung der Arbeit für dieses Projekt berechnen müssen. Sie bringen unbekannte Risiken mit sich und versprechen unbekannte Vorteile. Es wird sehr schwer zu beurteilen sein, ob Sie das Projekt pünktlich und mit der Qualität durchführen können, die Sie wollen / müssen, um erfolgreich zu sein, wenn es auf einer Technologie basiert, die Sie nicht kennen.
Wenn Sie einen Experten im NoSQL-Bereich im Team haben, sollten Sie sich diesen auf jeden Fall genauer ansehen. Aber ohne Fachwissen im Team, springen Sie nicht auf NoSQL für ein neues kommerzielles Projekt.
Update : Um etwas Benzin in das offene Feuer zu werfen, das Sie begonnen haben, finden Sie hier zwei interessante Artikel von Leuten aus dem SQL-Camp. :-)
Ich kann es kaum erwarten, dass NoSQL stirbt (Originalartikel ist weg, hier ist eine Kopie )
Kampf gegen die NoSQL-Denkweise, obwohl dies kein Anti-NoSQL-
Update ist : Nun, hier ist ein interessanter Artikel über NoSQL, das
NoSQL sinnvoll macht
quelle
Es scheint, als ob sich heutzutage nur echte Lösungen um Skalierung oder Sharding drehen. Alle modernen Datenbanken (sowohl NoSQLs als auch NewSQLs) unterstützen die horizontale Skalierung sofort auf Datenbankebene, ohne dass die Anwendung über Sharding-Code oder ähnliches verfügen muss.
Leider wird für das vertrauenswürdige gute alte MySQL Sharding nicht "out of the box" bereitgestellt. ScaleBase (Haftungsausschluss: Ich arbeite dort) ist Hersteller einer vollständigen Scale-Out-Lösung, einer "automatischen Sharding-Maschine", wenn Sie möchten. ScaleBae analysiert Ihre Daten und Ihren SQL-Stream, teilt die Daten auf DB-Knoten auf und aggregiert sie zur Laufzeit - das müssen Sie nicht! Und es ist kostenloser Download.
Versteh mich nicht falsch, NoSQLs sind großartig, sie sind neu, neu ist mehr Auswahl und Auswahl ist immer gut !! Die Wahl von NoSQL ist jedoch mit einem Preis verbunden. Stellen Sie sicher, dass Sie ihn bezahlen können ...
Sie können hier weitere Daten zu MySQL, NoSQL ... sehen: http://www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding
Hoffe das hat geholfen.
quelle
Eine der besten Optionen ist MongoDB (NOSql dB), das die Skalierbarkeit unterstützt. Speichert große Datenmengen nur als BigData in Form von Dokumenten im Gegensatz zu Zeilen und Tabellen in SQL. Dies ist ein schnellerer Vorgang nach dem Sharding der Daten. Verwendet Replikatsätze um eine Datengarantie zu gewährleisten, die mehrere Server mit einem primären Datenbankserver als Basis verwaltet. Sprachunabhängig. Flexibel zu bedienen
quelle