Вы можете подумать о плюсах / минусах модели представления CouchDB таким образом. (Хакеры CouchDB могут не согласиться, но IMO достаточно точен для пользователей.)
- Функция представления всегда выполняет полное «сканирование таблицы» при первом создании (как в случае с СУБД)
- Пока они не имеют побочных эффектов, функции map и сокращения могут быть произвольно сложными
- Каждый документ и карта / результат сокращения кэшируются и никогда не рассчитываются снова
- Если вы добавите или измените документ, он (и только он) будет пересчитан (и кэширован) для этого представления
Учитывая это, вы можете сделать некоторые выводы о производительности CouchDB:
- Фаза переиндексации для всего набора данных никогда не бывает, только пошаговая для каждого обновления документа
- Изменение вида функция заставляет пересоздать весь индекс
- Поскольку и CouchDB, и RDBMS должны обновлять индекс для новых данных, разумно полагать, что производительность будет интенсивной при интенсивном использовании обновления / вставки.
Очевидно, YMMV и стандартное отговорка «вы должны проверить свою нагрузку» применимы. Однако я добавлю еще несколько соображений.
- Я говорю, что RDBMS превосходно подходит для исследовательских запросов к вашим данным. Если вы даже не знаете, какие вопросы задавать по вашим данным, вы действительно не сможете обойтись языком для запросов , который структурирован .
- Однако, как только вы определите, что вы хотите знать, CouchDB (и, возможно, Hadoop) предоставят наиболее богатую систему запросов, потому что вы просто пишете код.
- Если ваш набор данных большой, базы данных NoSQL будут легче масштабироваться. Например, CouchDB-Lounge позволяет кластер кушеток для параллельной обработки. Hadoop делает то же самое, поэтому в таком случае он сводится к второстепенным соображениям: знакомство, удобство обслуживания, CouchDB - это веб-сервер, но для него требуется немного больше самостоятельной работы; Hadoop усваивает больше кластерного управления за счет сложности, чуждости и т. Д.
Надеюсь, это поможет пролить свет на ваше решение!