Подтвердить что ты не робот

NoSQL против SQL, когда масштабируемость не имеет значения

Недавно я много читал о различных базах данных NoSQL и о том, как они эффективно развертываются на некоторых крупных сайтах. Я начинаю проект, в котором, по-моему, бессистемный характер базы данных, такой как MongoDB, будет чрезвычайно полезен. Все, что я прочитал, похоже, указывает на то, что основным преимуществом базы данных NoSQL является масштабируемость. Является ли выбор базы данных NoSQL для схемы без дизайна так же законным, как и решение для масштабирования?

4b9b3361

Ответ 1

Да, иногда RDBMS - не лучшее решение, хотя есть способы размещения пользовательских полей (см. XML-тип данных, шаблон дизайна EAV или просто запасные общие столбцы), иногда бесплатная база данных схемы является хорошим выбором.

Тем не менее, вам нужно отменить свои требования перед тем, как выбрать доступ к базе данных документов, поскольку вы потеряете большую мощность, с которой вы можете использовать с реляционной моделью

например,...

Если бы в вашей базе данных RDBMS было бы несколько таблиц, вам необходимо изучить особенности, которые MongoDB предоставляет вам для удовлетворения этих потребностей.

Если вам нужно будет запросить данные по-разному, снова вам нужно изучить, что предлагает вам MongoDB.

Я бы не думал о NoSQL как о замене для РСУБД, а немного другом инструменте, который приносит свои собственные преимущества и недостатки, что делает его более подходящим для некоторых проектов, чем другие.

(В некоторых случаях могут использоваться обе базы данных. Также, если вы решите спуститься по маршруту, возможно, используя MongoDB, как только вы исследуете сайты и имеете более конкретные вопросы, вы можете посетить канал Freenode IRС#mongodb)

Ответ 2

Есть много других условий, о которых я слышал в отношении нереляционных систем и реляционных. Я предпочитаю эту терминологию по сравнению с sql/no-sql, так как я лично считаю, что она лучше описывает различия, а некоторые из "нет-sql" -сервинов имеют надстройки sql, так что так или иначе... какой тип concurrency В вашей системе требуется изоляция трансакции. Одно из предполагаемых различий между rel и non-rel dbs - это "последовательно-всегда", "последовательно - в основном" или "последовательно - в конечном счете". Отношения dbs по умолчанию обычно попадают в категорию "совместимый в основном" и с некоторой работой, а также с множеством фиксирующих и гоночных условий;;) могут быть "последовательно-всегда", поэтому каждый всегда смотрит на наиболее правильное представление данных. Большинство из того, что я читал/слышал о non-rel dbs, заключается в том, что они в основном "последовательны" - в конце концов. Это означает, что может быть много случаев, когда наши данные перемещаются вокруг, поэтому пользователь "А" может видеть, что у нас есть 92 виджета в инвентаре, тогда как пользователь "В" может видеть 79, и они могут не примириться, пока кто-то не отправится вытащить материал со склада. Другая проблема - изменчивость данных, как часто ее нужно обновлять? У конкретного non-rel db у меня появилось больше накладных расходов на обновления, некоторые из которых нуждаются в регенерации всего набора данных для включения любых обновлений.

Теперь подумайте, я думаю, что non-rel/nosql - отличные инструменты, если они действительно соответствуют вашему варианту использования. У меня есть несколько, на которые я сейчас смотрю проекты, которые у меня есть. Но при принятии решения вам нужно взглянуть на все компромиссы, иначе он просто превратится в более активное развитие, основанное на возобновлении.

Ответ 3

Я не думаю, что вы должны выбрать NoSQL datastore для своей бесплатной схемы. Конструкция, свободная от схемы, всегда существовала в СУБД через XML, а некоторые базы данных имеют хорошую поддержку XML. Гораздо проще иметь дело с базой данных, чем хранилище данных NoSQL. Масштабируемость и большие данные должны быть основными драйверами для выбора хранилища данных NoSQL, иначе компромисс между ACID и SQL - это много, чтобы переключиться на NoSQL.

Ответ 4

что вызвало эту проблему, если у вас большая ферма серверов и вам необходимо управлять распределением ваших данных и балансировкой нагрузки, что сложнее и сложнее реализовать с использованием РСУБД и требует высоких ИТ-навыков для проектирования, планирования и развертывания для вашего решение (и все еще производительность меньше). но если у вас есть только 3 или 4 сервера с небольшим проектом. Я не думаю, что у вас есть проблема. База данных NoSQL обычно рассматривается в крупных фермах серверов, а не в небольшом количестве серверов

Ответ 5

следует отметить самые важные вещи, чтобы отличить No-SQL и SQL который: NO-SQL полезен, когда база данных масштабируется огромным образом, как социальная сеть например: Переполнение стека: каждый вопрос имеет несколько ответов, а не мнимый ответ без вопросов, поэтому No-SQL гарантирует, что каждый вопрос включает в себя ответы в результате, когда вам нужно получить ответы на вопрос, мы можем принести все ответы без присоединения. Поскольку соединение является самым дорогостоящим запросом в связанной базе данных спасибо alot