В последнее время NoSQL приобрел огромную популярность.
Каковы преимущества NoSQL перед традиционными СУБД ?
В последнее время NoSQL приобрел огромную популярность.
Каковы преимущества NoSQL перед традиционными СУБД ?
Ответы:
Не все данные являются реляционными. В таких ситуациях может быть полезен 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:
1) NoSQL хорош, если вы хотите быть готовым к работе быстро, потому что он поддерживает безсхемную и объектно-ориентированную архитектуру.
2) Базы данных NoSql в конечном итоге согласуются, что на простом языке означает, что они не будут обеспечивать какую-либо блокировку данных (документов), как в случае СУБД, и что это означает, что всегда доступен последний моментальный снимок данных, что увеличивает задержку вашего приложения. ,
3) Он использует стратегию MVCC (Multi View параллелизм управления) для поддержки и создания снимка данных (документов).
4) Если вы хотите проиндексировать данные, вы можете создать представление, которое будет автоматически индексировать данные по предоставленному вами представлению.
Недостатки NoSql:
1) Он определенно не подходит для больших транзакционных приложений, так как в конечном итоге он непротиворечив и не поддерживает свойства ACID.
2) Кроме того, он создает несколько снимков (ревизий) ваших данных (документов), так как использует методологию MVCC для контроля параллелизма, в результате чего пространство используется быстрее, чем раньше, что делает сжатие и, следовательно, повторную индексацию более частым, и это замедлит вашу работу. ответ приложения по мере роста данных и транзакций в вашем приложении. Чтобы противостоять этому, вы можете масштабировать узлы по горизонтали, но опять же это будет стоить дороже, чем сравнивать базу данных sql.
От mongodb.com :
Базы данных NoSQL отличаются от старых реляционных технологий четырьмя основными областями:
Модели данных : база данных NoSQL позволяет создавать приложение без необходимости сначала определять схему в отличие от реляционных баз данных, которые заставляют определять схему до того, как вы сможете добавить какие-либо данные в систему. Отсутствие предопределенной схемы значительно упрощает обновление баз данных NoSQL при изменении ваших данных и требований.
Структура данных : реляционные базы данных были созданы в эпоху, когда данные были достаточно структурированы и четко определены их взаимосвязями. Базы данных NoSQL предназначены для обработки неструктурированных данных (например, текстов, сообщений в социальных сетях, видео, электронной почты), которые составляют большую часть данных, существующих сегодня.
Масштабирование : гораздо дешевле масштабировать базу данных NoSQL, чем реляционную базу данных, потому что вы можете увеличить емкость за счет масштабирования по дешевым, обычным серверам. Реляционные базы данных, с другой стороны, требуют одного сервера для размещения всей вашей базы данных. Для масштабирования вам нужно купить больший, более дорогой сервер.
Модель разработки : базы данных NoSQL имеют открытый исходный код, тогда как реляционные базы данных, как правило, имеют закрытый исходный код с лицензионными сборами, выплачиваемыми за использование их программного обеспечения. С NoSQL вы можете начать проект без каких-либо значительных инвестиций в программное обеспечение.