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

Является ли MongoDB надежным?

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

Я просмотрел альтернативы NoSQL и не нашел никого, полностью отвечающего моим конкретным критериям:

  • Простота обучения и использования.

  • Полностью совместим с PHP из коробки.

  • Быстро и хорошо документировано.

Как вы думаете, я правильно поступил с MongoDB или это пустая трата времени?

Благодарен за весь вход в этот вопрос!

4b9b3361

Ответ 1

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

Среди них:

  • База данных документов. Большая часть ваших данных встроена в документ, поэтому, чтобы получать данные о человеке, вам не нужно присоединяться к нескольким таблицам. Таким образом, улучшенная производительность для многих случаев использования.
  • Сильный язык запросов:. Несмотря на то, что он не является РСУБД, MongoDB имеет очень сильный язык запросов, который позволяет получить что-то очень конкретное или очень общее из документа или документов. БД запрашивается с помощью javascript, поэтому вы можете делать гораздо больше, помимо запросов (например, функций, вычислений).
  • Облицовка и репликация: Sharding позволяет вам применять масштаб горизонтально, а не вертикально. Другими словами, более маленькие серверы вместо одного огромного сервера. И репликация дает вам защиту от сбоев в нескольких конфигурациях (например, master/slave).
  • Мощное индексирование: Я изначально интересовался MongoDB, потому что он позволяет геопространственное индексирование из коробки, но имеет множество других индексирующих конфигураций.
  • Кросс-платформа: MongoDB имеет много drivers.

Что касается документации, то нет потопа, но это потому, что этот проект начался только в 2009 году; скоро будет еще много. Однако этого достаточно, чтобы начать работу с вашим проектом. В дополнение к этому вы можете проверить Kyle Banker MongoDB в действии, отличный ресурс.

Наконец, у меня был опыт только с RDMBS до MongoDB, я не знал javascript или json и все еще считал его очень простым и элегантным.

Ответ 3

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

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

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

Ответ 4

Если он достаточно хорош для Foursquare, он, скорее всего, достаточно хорош для вас.

Ответ 5

Я исхожу из фона RDBMS (12 лет) и последние 6 месяцев проверил варианты NoSQL. Для вашего сценария MongoDB звучит как хороший выбор. То, что я слышу от тех, кто некоторое время работал с MongoDB в производстве, заключается в том, что вы должны следовать этим лучшим практикам:

  • Сохранение размера ключа
  • Оценить (и, возможно, добавить) индексы для ускорения запросов
  • Обратите внимание на схему (я знаю, что это странно для базы данных "schemaless", но я слышал это несколько раз
  • Использование наборов реплик

Здесь видео о лучших практиках из группы пользователей MongoDB LA, которую я считаю полезной

Ответ 6

10gen, компания MongoDB предоставляет официальный драйвер PHP. Как говорит Иеремия, они реализуют наборы реплик в последней версии (1.6.0), и они уже отлаживают ее (1.6.1 и следующую версию через несколько недель: 1.6.2).

В большинстве случаев бесплатная поддержка со стороны компании и сообществ очень быстро и эффективно ( "бесплатно" я имею в виду вопрос о группах google: http://groups.google.com/group/mongodb-user?pli=1)

Ответ 7

Ну, еще раз о надежности:

  • Сообщество реагирует очень быстро, если вы встретите какую-либо критическую проблему.
  • Вам нужно беспокоиться о своих ожиданиях относительно "надежности": вам нужна гарантия на безопасное хранение ваших данных, а не повреждение?
    • В этом случае вам придется сравнить стоимость покупки надежного оборудования и развертывания реплик-наборов MongoDB.
  • Вы имеете в виду наличие высокодоступного сервиса?
  • У MongoDB есть проблемы с молодежью, я не могу сказать обратное. Но это определенно не пустая трата времени и, возможно, долгое время.

Ответ 8

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

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

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

Ответ 9

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