В последнее время NoSQL приобрел огромную популярность.
Каковы преимущества NoSQL перед традиционными СУБД ?
database
database-design
nosql
relational-database
rdbms
user496949
источник
источник
Ответы:
Не все данные являются реляционными. В таких ситуациях может быть полезен NoSQL.
С учетом сказанного, NoSQL означает «не только SQL». Он не предназначен для сбивания SQL-кода или его замены.
SQL имеет несколько очень больших преимуществ:
Те не ушли.
Ошибочно думать об этом как об аргументе. NoSQL - это альтернатива, которую люди должны учитывать, когда она подходит, вот и все.
Документы могут храниться в нереляционных базах данных, таких как CouchDB.
Может быть, чтение это поможет.
источник
SELECT blob FROM images WHERE blob CONTAINS('red car')
. Таким образом, хотя вы можете хранить необработанные данные в базе данных, вы не можете искать их, не подключая метаданные. Модули полнотекстового поиска в системах RDBMS устраняют некоторые неполные структурные пробелы.История выглядит так:
Google нуждается в слое хранения для их инвертированного поискового индекса. Они полагают, что традиционная СУБД не собирается ее сокращать. Поэтому они реализуют хранилище данных NoSQL, BigTable поверх своей файловой системы GFS. Основная часть состоит в том, что тысячи дешевых аппаратных машин обеспечивают скорость и избыточность.
Все остальные понимают, что Google только что сделал.
Теорема Брюера CAP доказана. Все используемые СУБД системы являются системами CA. Люди начинают играть с системами CP и AP. K / V магазины намного проще, поэтому они являются основным средством исследования.
Системы «программное обеспечение как услуга» в целом не предоставляют хранилище, подобное SQL. Следовательно, люди больше интересуются магазинами типа NoSQL.
Я думаю, что большая часть взлета может быть связана с этой историей. Масштабирование Google взял несколько новых идей в Google, и все остальные последовали его примеру, потому что это единственное известное им решение проблемы масштабирования на данный момент. Следовательно, вы готовы переделать все вокруг идеи распределенной базы данных Google, потому что это единственный способ масштабирования выше определенного размера.
C - согласованность
A - доступность
P - допуск раздела
K / V - ключ / значение
источник
NoSQL лучше чем RDBMS из-за следующих причин / свойств NoSQL
РЕДАКТИРОВАТЬ:
Чтобы ответить на вопрос «почему СУБД не может масштабироваться», пожалуйста, взгляните на pdf СУБД RDBMS, написанный Ставросом Харизопулосом, Дэниелом Дж. Абади, Сэмюэлем Мэдденом и Майклом Стоунбрейкером
СУБД имеют проблемы с обработкой огромных объемов данных в терабайтах и петах . Даже если у вас есть резервный массив независимых / недорогих дисков (RAID) и измельчение данных, он не будет хорошо масштабироваться для огромного объема данных. Вам требуется очень дорогое оборудование.
Ведение журнала . Сборка записей журнала и отслеживание всех изменений в структурах базы данных снижает производительность. Ведение журнала может не потребоваться, если возможность восстановления не является обязательной или если возможность восстановления обеспечивается другими способами (например, другими сайтами в сети).
Блокировка : традиционная двухфазная блокировка создает значительные накладные расходы, поскольку все обращения к структурам базы данных регулируются отдельной сущностью, менеджером блокировок.
Фиксация : в многопоточной базе данных многие структуры данных должны быть заблокированы, прежде чем к ним можно будет получить доступ. Удаление этой функции и переход на однопоточный подход оказывает заметное влияние на производительность.
Управление буфером : системе баз данных основной памяти не требуется доступ к страницам через пул буферов, что устраняет уровень косвенности при каждом доступе к записи.
Это не значит, что мы должны использовать NoSQL поверх SQL.
Тем не менее, RDBMS лучше, чем NoSQL, по следующим причинам / свойствам RDBMS
Мы должны использовать RDBMS (SQL) и NoSQL (не только SQL) в зависимости от бизнес-ситуации и требований
источник
NOSQL не имеет особых преимуществ перед моделью реляционной базы данных. NOSQL учитывает некоторые ограничения современных СУБД SQL, но не предполагает каких-либо принципиально новых возможностей по сравнению с предыдущими моделями данных.
NOSQL означает только отсутствие SQL (или «не только SQL»), но это не означает то же самое, что и отсутствие реляционного . В принципе, реляционная база данных создаст очень хорошее решение NOSQL - просто ни один из текущего набора продуктов NOSQL не использует реляционную модель.
источник
СУБД больше ориентированы на отношения, а NoSQL больше на хранилище.
Вы можете рассмотреть возможность использования NoSQL, когда ваша СУБД достигает узких мест. NoSQL делает СУБД более гибкой.
источник
Самое большое преимущество NoSQL над RDBMS - масштабируемость .
Базы данных NoSQL могут легко масштабироваться до многих узлов, но для СУБД это очень сложно.
Масштабируемость не только дает вам больше места для хранения, но и значительно повышает производительность, поскольку многие хосты работают одновременно.
источник
Если вам нужно обрабатывать огромное количество данных с высокой производительностью
ИЛИ
Если модель данных не предопределена
затем
База данных NoSQL - лучший выбор.
источник
Просто добавив ко всей приведенной выше информации
Преимущества NoSql:
1) NoSQL хорош, если вы хотите быть готовым к работе быстро, потому что он поддерживает безсхемную и объектно-ориентированную архитектуру.
2) Базы данных NoSql в конечном итоге согласуются, что на простом языке означает, что они не будут обеспечивать какую-либо блокировку данных (документов), как в случае СУБД, и что это означает, что всегда доступен последний моментальный снимок данных, что увеличивает задержку вашего приложения. ,
3) Он использует стратегию MVCC (Multi View параллелизм управления) для поддержки и создания снимка данных (документов).
4) Если вы хотите проиндексировать данные, вы можете создать представление, которое будет автоматически индексировать данные по предоставленному вами представлению.
Недостатки NoSql:
1) Он определенно не подходит для больших транзакционных приложений, так как в конечном итоге он непротиворечив и не поддерживает свойства ACID.
2) Кроме того, он создает несколько снимков (ревизий) ваших данных (документов), так как использует методологию MVCC для контроля параллелизма, в результате чего пространство используется быстрее, чем раньше, что делает сжатие и, следовательно, повторную индексацию более частым, и это замедлит вашу работу. ответ приложения по мере роста данных и транзакций в вашем приложении. Чтобы противостоять этому, вы можете масштабировать узлы по горизонтали, но опять же это будет стоить дороже, чем сравнивать базу данных sql.
источник
От mongodb.com :
источник