MongoDB vs MySQL
Я использовал для создания Ruby on Rails приложений с MySQL.
MongoDB в настоящее время становится все более и более известным, и я теперь начинаю давать ему попробовать.
проблема в том, что я не знаю основной теории того, как работает MongoDB (я использую mongoid gem, если это имеет значение)
поэтому я хотел бы иметь сравнение производительности между использованием MySQL + ActiveRecord и моделью, созданной mongoid gem, может ли кто-нибудь помочь мне понять это?
3 ответа:
статьи: Какого черта вы на самом деле используете NoSQL? делает очень хорошую работу по представлению плюсов и минусов использования NoSQL.
Edit: Также читайте http://blog.fatalmind.com/2011/05/13/choosing-nosql-for-the-right-reason/ сообщение в блоге тоже
Re-edit: я нашел некоторые недавние материалы (опубликованные в 2014 году) по этой теме, которые я считаю актуальными:что осталось от NoSQL?
Я не знаю много о лежащей в основе теории. Но это совет, который я получил: используйте только MongoDB, если вы запустите его на нескольких серверах; вот когда он будет сиять. Насколько я понимаю, движение NoSQL появилось в немалой степени из-за боли балансировки нагрузки реляционных баз данных на нескольких серверах. Поэтому, если вы размещаете свое приложение не более чем на одном сервере, MySQL будет предпочтительным выбором.
хорошие люди в проект Доктрины недавно написал довольно полезный блоге на эту тему.
от того, что я читал до сих пор... вот мой взгляд на это.
стандартный SQL торгует более низкой производительностью для многофункциональности... т. е. он позволяет вам выполнять соединения и транзакции между наборами данных (таблицами/коллекциями, если хотите) среди прочего.
Это позволяет разработчику приложения перенести часть сложности приложения на уровень базы данных. Это имеет свои преимущества, чтобы не беспокоиться о целостности данных и остальных свойств кислоты с помощью применение путем в зависимости от доказанной технологии. Отсутствие экстремальной масштабируемости работает практически для всех проектов до тех пор, пока можно управлять работой приложения в ожидаемые сроки, что иногда может привести к необходимости покупки высокопроизводительных/дорогих систем реляционных баз данных.
с другой стороны, Mongo DB намеренно исключает большую часть присущей сложности, связанной с реляционными базами данных, позволяя лучше масштабировать спектакль.
этот подход заставляет разработчика приложения перепроектировать приложение, чтобы обойти отсутствие реляционных функций... что само по себе хорошо, но прилагаемые усилия, как правило, стоят того, если у вас есть требования к масштабируемости. Обратите внимание, что с MongoDB в зависимости от требований к данным W.r.T ACID свойства, приложение должно будет активизировать и обрабатывать по мере необходимости.