Ну, Основное различие в обсуждается ниже. Конечно, теперь Нет-SQL Концепции, получающие популярность день за днем. Но все же мы должны использовать на основе потребностей или требований проекта.
1) Базы данных SQL в основном называются RDBMS. тогда как база данных NoSQL в основном называется Не реляционная или База данных.
2) RDBMS будет следовать ACID свойства Atomcity т.е., согласованность, изолированность, Durability.But в No-Sql это следующие CAP (последовательность, доступность и порционирования).
3) В SQL мы храним данные в табличном формате only.But в No-SQL она использует коллекцию ключ-значение пары, документы, базы данных графа или широкой колонке stores.So No-SQL является схемы бесплатно и Он может обрабатывать структурированные, полуструктурированные и неструктурированные данные. Но SQL не является бесплатной схемой. SQL имеет Предварительно определенная схема .i.e В SQL, если у вас есть таблица и в этом первом столбце есть тип данных int, тогда вы не можете сохранить строку или значения Float.
4) RDBMS следует SQL (язык структурированных запросов) для определения и манипулирования данными, что является очень мощным. В базе данных NoSQL запросы сосредоточены на сборе документов. Иногда его также называют UnQL (Язык неструктурированных запросов). Синтаксис использования UnQL варьируется от базы данных к базе данных. Также базы данных SQL подходят для сложной среды с интенсивным запросом, тогда как базы данных NoSQL не подходят для сложных запросов. На высоком уровне NoSQL не имеет стандартных интерфейсов для выполнения сложных запросов, а сами запросы в NoSQL не так сильны, как язык запросов SQL.
Для Eg..Take Social Eng. сайты, мы загружаем фотографии/видеоролики/Music/Album..etc.Для того, что мы получаем комментарии, ответы на комментарии, например..etc.Here мы можем получить числа, специальные символы .., поэтому почти мы не можем предсказать, что может быть ответ или комментарии. В этом случае мы ищем No-SQL в документированном типе, как показано ниже, чтобы сохранить комментарии.
{
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.."
}
]
}
В Выше, если мы идем на SQL мы наклоняем комментарии магазина (текст выше) в столбце only.we нужно хранить на основе type.So мы в конечном итоге с большим сложным запросом с номером объединений с различными таблицами . Но SQL хорош для транзакций.
5) В большинстве типичных ситуаций, базы данных SQL являются Вертикально масштабируемой. Вы можете управлять увеличением нагрузки за счет увеличения количества процессоров, ОЗУ, SSD и т. Д. На одном сервере. С другой стороны, базы данных No-SQL: Горизонтально масштабируемый. Вы можете просто добавить еще несколько серверов в инфраструктуру базы данных No-SQL для обработки большого трафика.
6) базы данных SQL лучше всего подходит для тяжело нагруженных транснациональных типа приложений, так как она более стабильна и обещает неделимость, а также целостности данных. Хотя вы можете использовать NoSQL для целей транзакций, он по-прежнему не сопоставим и достаточно стабилен при высокой нагрузке и сложных транзакционных приложениях.
7) Примеры для No-SQL - это MangoDB, Cassandra ..etc while for SQL - это MySQL, SQL Server и т. Д.
Они не лучше, они решают другую проблему. Этот вопрос довольно оскорбителен в его названии. – HLGEM
Я выделил основные различия между SQL и NoSQL в [этом ответе] (http://stackoverflow.com/questions/4255895/why-googles-bigtable-referred-as-a-nosql-database/4256209#4256209). –