Раскрытие информации: я фанат и пользователь MongoDB, у меня нулевой опыт работы с CouchDB.
У меня тяжелое приложение, которое очень интенсивно читает и пишет. Я бы сказал, что число операций чтения превышает количество записей в 30: 1. Способ, которым монго предназначен для чтения, всегда будет намного быстрее, чем трюк (по моему опыту) состоит в том, чтобы сделать ваши записи настолько эффективными, что вы можете выделить более высокий процент системных ресурсов для записи.
При создании продукта поверх монго ключевым моментом является поле _id. Это поле автоматически генерируется и добавляется ко всем вашим объектам JSON, оно будет выглядеть примерно так: 47cc67093475061e3d95369d, когда вы создаете свои запросы (Find), пытаетесь и запрашиваете это поле везде, где это возможно, так как оно содержит местоположение компьютера (и я думаю, также местоположение диска ?? ? - я должен проверить это), где находится объект, поэтому, когда вы используете находку или обновление, используя это поле, действительно ускорит работу вашего компьютера. Учтите это при проектировании вашей системы.
Пример:
2 кластера в моей базе данных - это «пользователи» и «посты». Пользователь может создавать несколько сообщений. Эти две коллекции должны часто ссылаться друг на друга в реализации моего приложения.
В каждом объекте записи я сохраняю _id родительского пользователя.
В каждом объекте пользователя я храню массив всех сообщений, созданных пользователем.
Теперь на каждой странице пользователя я могу сгенерировать список всех созданных постов без ресурсоемкого запроса, но с прямым просмотром _id. Чем больше кластер монго, тем больше будет разница.
Если вы вообще знакомы с физическими локациями оракула, вы можете понять эту концепцию только в монго, она гораздо более удивительная и мощная.
Я был напуган в прошлом году, когда мы решили окончательно отказаться от MySQL для mongo, но я могу рассказать вам следующее о своем опыте:
- Портирование данных всегда ужасно, но все прошло так, как я мог себе представить.
Mongo - это, вероятно, лучшая документированная база данных NoSQL, и сообщество Open Source просто фантастическое.
- Когда говорят, быстро и масштабируемо, там не шутишь, летит.
- На мой взгляд, дизайн схемы очень прост и намного более естественен и упорядочен, чем db типа ключ / значение.
- Кажется, вся система разработана для минимальной сложности пользователя, добавление узлов и т. Д. - просто.
Хорошо, серьезно, я клянусь, Монго не заплатил мне, чтобы написать это (я желаю), но извиняюсь за праздник любви.
Независимо от вашего выбора, удачи.