web-dev-qa-db-ger.com

SQL (MySQL) gegen NoSQL (CouchDB)

Ich bin gerade dabei, eine hochskalierbare Anwendung zu entwerfen, die viele Daten speichern muss. Zum Beispiel wird es eine Menge über Benutzer speichern und dann Dinge wie viele ihrer Nachrichten, Kommentare usw. Ich habe MySQL schon immer verwendet, aber jetzt bin ich daran interessiert, etwas Neues wie couchdb oder ähnliches auszuprobieren, das nicht SQL ist.

Hat jemand irgendwelche Gedanken oder Richtlinien dazu?

115
christophmccann

Hier ist ein Zitat aus einem kürzlich veröffentlichten Blogeintrag von Dare Obasanjo .

SQL-Datenbanken sind wie automatisch Übertragungs- und NoSQL-Datenbanken sind wie manuelle Übermittlung. Wenn du einmal zu NoSQL wechseln, werden Sie verantwortlich für eine Menge Arbeit, die der Das System kümmert sich automatisch um ein relationales Datenbanksystem. Ähnlich was passiert, wenn Sie manuell auswählen über Automatikgetriebe. Zweitens, Mit NoSQL können Sie mehr Leistung aus dem System durch viele Integritätsprüfungen werden eliminiert gemacht von relationalen Datenbanken aus der Datenbankschicht. Dies ist wieder ähnlich wie Sie mehr Leistung erzielen können Fahren Sie aus Ihrem Auto, indem Sie ein Handbuch fahren Übertragung gegen eine automatische Übertragungsfahrzeug.

Die bemerkenswerteste Ähnlichkeit ist jedoch so wie die meisten von uns nicht wirklich können. Nutzen Sie die Vorteile eines Handschaltfahrzeug, weil Die Mehrheit unserer Fahrer sitzt im Verkehr auf dem Weg von und nach Arbeit gibt es eine ähnliche harte Realität Die meisten Websites befinden sich nicht bei Google oder Die Größe von Facebook und somit keine Notwendigkeit für ein Bigtable oder Cassandra.

Ich kann nur den Wechsel von MySQL, bei dem Sie zumindest über ein wenig Erfahrung verfügen, zu CouchDB hinzufügen, wo Sie keine Erfahrung haben. Das bedeutet, dass Sie sich mit einer ganzen Reihe neuer Probleme befassen und unterschiedliche Konzepte und bewährte Vorgehensweisen lernen müssen. Dies ist zwar wunderbar (ich spiele zu Hause mit MongoDB und mag es sehr), aber es ist ein Aufwand, den Sie beim Schätzen der Arbeit für dieses Projekt berechnen müssen, und bringt unbekannte Risiken mit sich, während Sie unbekannte Vorteile versprechen. Es ist sehr schwer zu beurteilen, ob Sie das Projekt pünktlich und mit der gewünschten Qualität durchführen können, um erfolgreich zu sein, wenn es auf einer Technologie basiert, die Sie nicht kennen.

Wenn Sie nun einen Experten im NoSQL-Bereich im Team haben, sollten Sie ihn unbedingt unter die Lupe nehmen. Aber ohne jegliche Expertise im Team sollten Sie NoSQL nicht für ein neues kommerzielles Projekt nutzen.

Update: Um nur Benzin ins offene Feuer zu werfen, hier sind zwei interessante Artikel von Leuten aus dem SQL-Lager. :-)

Ich kann nicht warten, bis NoSQL stirbt (ursprünglicher Artikel ist weg, hier ist eine Kopie )
Kampf gegen die NoSQL-Denkweise, obwohl dies kein Anti-NoSQL-Teil ist
Update: Hier ist ein interessanter Artikel über NoSQL
Verstehen von NoSQL

175
Franci Penov

Es scheint, als würden sich heutzutage nur echte Lösungen um das Skalieren oder Scherben drehen. Alle modernen Datenbanken (NoSQLs sowie NewSQLs) unterstützen die horizontale Skalierung direkt auf der Datenbankebene, ohne dass die Anwendung Sharding-Code oder ähnliches benötigt. 

Für das vertraute, gute alte MySQL wird das Scherben leider nicht "out of the box" bereitgestellt. ScaleBase (Haftungsausschluss: Ich arbeite dort) ist Hersteller einer kompletten Scale-Out-Lösung, einer "automatischen Splittermaschine", wenn Sie möchten. ScaleBae analysiert Ihre Daten und Ihren SQL-Stream, teilt die Daten zur Laufzeit auf DB-Knoten und Aggregate auf - Sie müssen es also nicht! Und es ist kostenloser Download.

Versteht mich nicht falsch, NoSQLs sind großartig, sie sind neu, neu ist mehr Auswahl und Auswahl ist immer gut !! Die Wahl von NoSQL hat jedoch einen Preis. Stellen Sie sicher, dass Sie ihn bezahlen können ... 

Hier finden Sie weitere Informationen zu MySQL, NoSQL ...: http://www.scalebase.com/extreme-scalability-with-mongodb-and-mysql-part-1-auto-sharding

Hoffe das hat geholfen.

3
Doron Levari

Eine der besten Optionen ist die Verwendung von MongoDB (NOSql dB), die Skalierbarkeit unterstützt. Stellt große Datenmengen im Gegensatz zu Zeilen und Tabellen in sql als Bigdata in Form von Dokumenten bereit um sicherzustellen, dass Daten gewährleisten, dass mehrere Server mit einem primären Datenbankserver als Basis verwaltet werden. Sprachunabhängig . Flexibel einsetzbar 

0
Kiranmai Harshi