MongoDB против MySQL

Я использовал для создания приложений Ruby on Rails с MySQL.

MongoDB в настоящее время становится все более известным, и теперь я начинаю его попробовать.

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

Итак, я хотел бы сравнить результаты с использованием MySQL + ActiveRecord и модели, сгенерированной мангоидным драгоценным камнем, может ли кто-нибудь помочь мне разобраться?

Ответ 1

В статье, озаглавленной: Какая черта, на самом деле вы используете NoSQL для?, очень хорошо описывает плюсы и минусы использования NoSQL.

Изменить: также читайте http://blog.fatalmind.com/2011/05/13/choosing-nosql-for-the-right-reason/ сообщение в блоге

Перередактируйте: я нашел несколько недавних материалов (опубликованных в 2014 году) по этой теме, которые я считаю уместными: Что осталось от NoSQL?

Ответ 2

Я мало знаю основную теорию. Но это совет, который я получил: используйте MongoDB, если вы запускаете его на нескольких серверах; что когда он будет сиять. Насколько я понимаю, движение NoSQL появилось в немалой степени из-за боли балансирующих нагрузки реляционных баз данных на нескольких серверах. Поэтому, если вы размещаете свое приложение не более чем на одном сервере, MySQL будет предпочтительным выбором.

Хорошие люди в проекте Doctrine недавно создали довольно полезный в блоге по этому вопросу.

Ответ 3

Из того, что я прочитал до сих пор... вот мое занятие.

Стандартные транзакции SQL снижают производительность для полнофункционального контента... т.е. позволяют вам, помимо всего прочего, выполнять объединения и транзакции между наборами данных (таблицы/коллекции, если вы это сделаете).

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

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

Этот подход заставляет разработчика приложения повторно архивировать приложение для работы с отсутствием реляционных функций... что само по себе является хорошей вещью, но прилагаемые усилия обычно стоят того, если у вас есть требования к масштабируемости, Обратите внимание, что с MongoDB в зависимости от требований к свойствам w.r.t ACID данных приложение должно будет активировать и обрабатывать по мере необходимости.