Nun, Der grundlegende Unterschied sind unten diskutiert.Natürlich, jetzt No-SQL Konzepte immer beliebter Tag für Tag.Aber noch die, die wir basierend auf Projekt brauchen oder Anforderungen verwenden müssen.
1) SQL-Datenbanken werden in erster Linie als RDBMS bezeichnet. während NoSQL-Datenbank in erster Linie als Non-Relational oder Distributed Datenbank bezeichnet werden.
2) RDBMS folgen ACID Eigenschaften d.h Atomcity, Consistency, Isolation, Durability.But in No-SQLs es folgende CAP (Konsistenz, Verfügbarkeit und Portionieren).
3) In SQL wir Daten in tabellarischer speichern formatiert only.But in No-SQL es Sammlung von Schlüssel-Wert-Paar verwendet, Dokumente, Graph-Datenbanken oder Weit Spalte stores.So No-SQL ist Schema frei und Es kann strukturierte, halbstrukturierte und unstrukturierte Daten verarbeiten. Aber SQL ist nicht Schema free.SQL hat Vordefiniertes Schema .i.e. In SQL Wenn Sie Tabelle haben und in dieser ersten Spalte ist Int Datentyp, dann können Sie String oder Float-Werte nicht speichern.
4) RDBMS folgt SQL (Structured Query Language) zur Definition und Manipulation von Daten, die sehr leistungsfähig ist. In der NoSQL-Datenbank konzentrieren sich Abfragen auf die Sammlung von Dokumenten. Manchmal wird es auch als UnQL (unstrukturierte Abfragesprache) bezeichnet. Die Syntax der Verwendung von UnQL variiert von Datenbank zu Datenbank. Auch SQL-Datenbanken sind gut geeignet für die komplexe abfrageintensive Umgebung, während NoSQL-Datenbanken nicht gut für komplexe Abfragen geeignet sind. Auf einer höheren Ebene haben NoSQL keine Standardschnittstellen, um komplexe Abfragen auszuführen, und die Abfragen selbst in NoSQL sind nicht so leistungsfähig wie die SQL-Abfragesprache.
Für Eg..Take Social Eng. Websites, wir laden Fotos/Videos/Musik/Album..etc.For, dass wir Kommentare erhalten, Antworten auf Kommentare, wie .. etc .. Hier können wir Zahlen, Sonderzeichen .., so fast wir können nicht vorhersagen, was die sein könnte antworten oder kommentieren.In diesem Fall gehen wir für No-SQL in dokumentiertem Typ wie unten, um die Kommentare zu speichern.
{
user_id: ObjectID("65f82bda42e7b8c76f5c1969"),
update: [
{
date: ISODate("2015-09-18T10:02:47.620Z"),
text: "Nice picture."
},
{
date: ISODate("2015-09-17T13:14:20.789Z"),
text: "[email protected] smile symbol"
}
{
date: ISODate("2015-09-17T12:33:02.132Z"),
text: "...Oh my god.."
}
]
}
oben, wenn wir für SQL gehen kippen wir speichern Kommentare (Text oben) in Spalte only.we Bedarf auf type.So speichern Basis werden wir mit Big komplexer Abfrage mit der Nummer am Ende des mit verschiedenen Tabellen verknüpft .But SQL ist gut für Transaktionen.
5) In den meisten typischen Situationen sind SQL-Datenbanken vertikal skalierbar. Sie können die zunehmende Last verwalten, indem Sie die CPU, den RAM, die SSD usw. auf einem einzelnen Server erhöhen. Auf der anderen Seite sind No-SQL-Datenbanken horizontal skalierbar. Sie können in Ihrer No-SQL-Datenbankinfrastruktur einfach weitere Server hinzufügen, um den großen Datenverkehr zu bewältigen.
6) SQL-Datenbanken sind am besten geeignet für Heavy duty grenzüberschreitender Typ-Anwendungen, da es stabiler und verspricht, die Unteilbarkeit sowie Integrität der Daten ist. Während Sie NoSQL für Transaktionszwecke verwenden können, ist es in Hochlast und für komplexe Transaktionsanwendungen noch nicht vergleichbar und stabil genug.
7) Beispiele für No-SQL sind MangoDB, Cassandra..etc während für SQL sind MySQL, SQL Server etc ..
Sie sind nicht besser, sie lösen ein anderes Problem. Diese Frage ist ziemlich beleidigend in ihrem Titel. – HLGEM
Ich habe die wichtigsten Unterschiede zwischen SQL und NoSQL in [diese Antwort] hervorgehoben (http://stackoverflow.com/questions/4255895/why-googles-bigtable-referred-as-a-nosql-database/4256209#4256209). –