MongoDB для личной нераспределенной работы - PullRequest
3 голосов
/ 04 апреля 2011

На это можно было бы ответить здесь (или в другом месте) раньше, но я продолжаю смешиваться / нет просмотров в интернете.

Я никогда не использовал ничего, кроме SQL-подобных баз данных, а затем я наткнулся на базы данных NoSQL (в частности, mongoDB). Я попробовал свои силы на этом. Я делал это просто для удовольствия, но повсюду говорят, что действительно здорово, когда вы используете его на распределенных серверах. Так что мне интересно, может ли это быть полезным (нетривиальным способом) для выполнения небольших проектов и вещей, главным образом, только на персональном компьютере? Есть ли реальные преимущества, когда есть только один сервер.

Хотя было бы здорово использовать MapReduce (и поговорить об этом с коллегами: d) не будет ли это излишним, если его использовать для небольших проектов, работающих на отдельных серверах? Или есть другие преимущества этого? Мне нужна ясная мысль. Извините, если я здесь звучал наивно.

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

Спасибо.

Ответы [ 2 ]

5 голосов
/ 04 апреля 2011

ИМХО, MongoDB идеально подходит для использования с одним сервером / небольшими проектами и не является обязательным условием, что вы должны использовать его только для «больших данных» или многосерверных проектов.

Если MongoDB решает конкретное требование, это не имеет значения в масштабах проекта, поэтому не позволяйте этому аспекту повлиять на вас. Использование MapReduce может быть немного излишним / не лучшим подходом, если у вас действительно малообъемные данные и вы просто хотите выполнить некоторые базовые агрегации - это можно сделать с помощью оператора group (который в настоящее время имеет некоторые ограничения в отношении того, сколько данных он может вернуть).

Итак, я думаю, что в целом я говорю о том, чтобы использовать правильный инструмент для работы. Нет ничего плохого в использовании MongoDB для небольших проектов / одного компьютера. Если СУБД, такая как SQL Server, лучше подходит для вашего проекта, используйте это. Если подходит технология NoSQL, такая как MongoDB, используйте ее.

4 голосов
/ 04 апреля 2011

+ 1 на AdaTheDev - но здесь есть еще 3 вещи, на которые стоит обратить внимание:

  1. Долговечность: начиная с версии 1.8, MongoDB обладает долговечностью на одном сервере при запуске с --journal, поэтому теперь он более применим к сценариям с одним сервером
  2. Выбор NoSQL DB, скажем, RDBMS, должен решаться не на настройке одного или нескольких серверов, а на основе моделирования базы данных. См., Например, 1 и 2 - в MongoDB легко хранить структуры, подобные комментариям.
  3. MapReduce: опять же, это зависит от моделирования данных и операции / расчета, которые должны произойти. В зависимости от того, как вы моделируете свои данные, вам может понадобиться или не потребоваться использование MapReduce.
...