Что преимуществами использования является база данных без схем как MongoDB по сравнению с реляционной базой данных?

Я привык использовать реляционные базы данных как MySQL или PostgreSQL, и объединенный с платформами MVC, такими как Symfony, RoR или Django, и я думаю, что он работает отлично.

Но в последнее время я услышал много о MongoDB, который является нереляционной базой данных, или, для заключения в кавычки официального определения,

масштабируемая, высокоэффективная, ориентированная на документ база данных без схем, с открытым исходным кодом.

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

В котором использовании случаев MongoDB (или подобные базы данных) лучше, чем использование "классические" реляционные базы данных? И каковы преимущества MongoDB по сравнению с MySQL в целом? Или по крайней мере, почему это так отличается?

Если бы у Вас есть указатели на документацию и/или примеры, она очень помогла бы также.

94
задан Community 22 September 2017 в 17:57
поделиться

6 ответов

Вот некоторые из преимуществ MongoDB для создания веб- прикладной:

  1. Модель данных на основе документов. Базовая единица места хранения аналогична словарям JSON, Python, хешам Ruby и т. д. Это богатая структура данных, способная содержать массивы и другие документы. Это означает, что часто можно представить в одном объекте конструкцию, для правильного представления которой в реляционной базе данных потребуется несколько таблиц. Это особенно полезно, если данные неизменны.
  2. Возможность глубокого запроса. MongoDB поддерживает динамические запросы к документам, используя язык запросов на основе документов, почти такой же мощный, как SQL.
  3. Нет миграций схемы. Поскольку MongoDB не содержит схемы, код определяет схему.
  4. Четкий путь к горизонтальной масштабируемости.

Вам нужно будет прочитать больше об этом и поиграть с ним, чтобы получить лучшую идею. Вот онлайн-демонстрация:

http://try.mongodb.org/

56
ответ дан 24 November 2019 в 06:09
поделиться

Есть многочисленные преимущества.

Например, схема базы данных будет более масштабируемым, вам не придется беспокоиться о миграциях, код будет более приятным для записи ... Например, вот один из кода моей модели:

class Setting
  include MongoMapper::Document

  key :news_search, String, :required => true
  key :is_availaible_for_iphone, :required => true, :default => false

  belongs_to :movie
end

Добавление ключа Просто добавляю строку кода!

Существуют и другие преимущества, которые появятся в долгосрочной перспективе, как лучшая сила и скорость.

... Но имейте в виду, что не реляционная база данных не лучше , чем реляционный . Если ваша база данных имеет много отношений и нормализацию, может потребоваться немного смысла использовать что-то вроде MongoDB. Это все о нахождении правильного инструмента для работы.

Для большего количества вещей, чтобы прочитать, я бы порекомендовал взглянуть на «, почему, я думаю, что Mongo для баз данных о том, какие рельсы были в рамках » или на этом посте на веб-сайте MongoDB. Чтобы взволнованы, и если вы говорите по-французски, посмотрите на в этой статье , объясняющий, как настроить MongoDB с нуля.

Отредактируйте: Я почти забыл вам рассказать о этого Railscast Ryan . Это очень интересно и заставляет вас хотеть начать сразу!

23
ответ дан 24 November 2019 в 06:09
поделиться

Преимуществом без схемы заключается в том, что вы можете бросить любую нагрузку в нее, и никто никогда не будет иметь никаких оснований для жалоб на нее, или для того, чтобы сказать, что это было неправильно.

Это также означает, что все, что вы бросаете в него, остаются полностью пустыми значения после того, как вы сделали это.

Некоторые означают, что варный недостаток, некоторые другие не будут.

Дело в том, что реляционная база данных имеет устоявшуюся схему, является следствием того факта, что оно имеет хорошо установленный набор расширенных предикатов, которые являются тем, что позволяет нам придавать значение для того, что записано в базе данных, А какие также необходимые обязательные условия для нас это сделать.

Без устоявшейся схемы, никаких сложных предикатов, а без развлечений преодолевает, чтобы пользователю никакого способа сделать любое значение из того, что было набито.

5
ответ дан 24 November 2019 в 06:09
поделиться

MongoDB был показан на нищете еженедельно на этой неделе - http://twit.tv/floss105 База данных с использованием подобной концепции является CouchDB, которая была показана на другом FLOSS Weekly: http://twit.tv/floss36

Я думаю, что стоит слушать тех, кто в дополнение к ссылки предоставлены @marcgg

3
ответ дан 24 November 2019 в 06:09
поделиться

После вопроса о базах данных с текстовым хранением) Я посмотрел на Монгодб и подобные системы.
Если я правильно понял, они должны быть проще в использовании и настройке и намного быстрее. Возможно, также более безопаснее, так как отсутствие SQL предотвращает инъекцию SQL ...
Видимо, Mongodb используется в основном для веб-приложений.
По сути, и они утверждают, что сами по себе эти базы данных не подходят для сложных запросов, добычи данных и т. Д. Но они сияют при получении быстрого количества плоских данных.

0
ответ дан 24 November 2019 в 06:09
поделиться

Это все о компенсации. Монгодб быстро, но не кислота, оно не имеет транзакций. Это лучше, чем MySQL в некоторых случаях и хуже в других.

2
ответ дан 24 November 2019 в 06:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: