Какую NoSQL DB я должен выбрать для многопользовательского приложения для совместной работы над проектами? - PullRequest
1 голос
/ 29 марта 2012

Я пытаюсь разработать серверную часть приложения для iphone с помощью PHP или Node.js (что я еще не решил).Приложение будет похоже на многопользовательский инструмент для совместной работы над проектом .Например, каждый пользователь iPhone может создать проект , а другие приглашенные участники могут обсудить сколько они хотят потратить на этот конкретныйпроект.Каждый пользователь может добавить единую стоимость , а сервер будет обрабатывать расчет общих расходов и обновлять всех участников проекта.Таким образом, это менее вероятно, приложение реального времени, но тем не менее, база данных обновлений и обновлений требует много.

Насколько я гуглил ...

CouchDB немногомедленнее, чем MongoDB и Radis.

MongoDB работает быстро, но есть вероятность потери старых данных.Поскольку все данные должны быть постоянными для моего проекта, должен ли я полагаться на MongoDB?

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

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

1 Ответ

3 голосов
/ 29 марта 2012

Чтобы решить некоторые из ваших проблем:

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

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

Факторы, которые должны помочь вам принять решение -

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

  • системам NoSQL, как правило, требуется - вы, как пользователь, понимаете, как этоработает на более глубоком уровне абстракции, чем реляционные.Различные системы имеют свои собственные компромиссы для достижения определенных целей (таких как производительность или долговечность).Вы должны понимать это и быть готовыми испачкать руки

  • В случае проблем вам может потребоваться доступ к помощи.Предпочитайте тех, у кого есть хорошая документация и активное сообщество разработчиков (или легкодоступная коммерческая поддержка)

Надеюсь, это поможет

...