Для ответа на ваш вопрос необходимо прояснить несколько вещей (и я надеюсь, что я все понял):
Постоянные и временные представления. Разница между постоянными и временными представлениями заключается в том, что постоянные представленияпредставления хранятся постоянно.
Чтобы понять часть хранения, вам нужно знать, что механизм хранения CouchDB опирается на B + Tree, предлагая очень мощные возможности индексации, которые позволяют нам находить данные в этом хранилище по ключу в «логарифмическом амортизированном времени»."( CouchDB book ).
CouchDB обрабатывает документы «только для добавления».Это означает, что это не так, как в большинстве реляционных СУБД, где отдельные значения в строке таблицы обновляются и происходит блокировка.Если документ обновляется, он просто постепенно устанавливает новую редакцию (_rev) и добавляется в хранилище.
Когда вы создаете постоянное представление при первом запросе для каждого документа в вашем документеВ базе данных выполняется ваше новое представление, которое сохраняет эти данные в новом файле B + дерева для этого представления, обеспечивая тем самым новый индекс для агрегирования данных в соответствии с ключом, который вы определили в своем представлении.
После обновления документов, которые обрабатываются этим представлением, необходимо пересчитать не весь постоянный вид, а только обновленные документы.
Теперь вы должны быть в состоянии понять, почему временные представления хороши для разработки или тестирования в Futon, но, поскольку они должны быть вычислены как новые для всех ваших документов, не рекомендуется для чего-либо другого, кроме разработки.
В любом случае.Марчелло прав.Если вы намереваетесь просто вернуть полные документы, рекомендуется выполнить запрос с помощью «include_docs = true».Зачем?Поскольку B-дерево для вашего постоянного просмотра просто должно будет хранить скопированные данные рядом с вашим индексным ключом.
@ Marcello-Nuccio Я не уверен, хотя, если это правильно сказать, что динамические представления не имеютиндекс?Как я понял, у них есть индекс, но это не имеет смысла, поскольку они вычисляются как новые при каждом запросе?Хорошо, теперь у меня болит боль!