CouchDB Views - Производительность функции списка? - PullRequest
3 голосов
/ 03 сентября 2010

Как многие из вас знают, ответ из представления couchdb выглядит следующим образом:

{"rows":[
  {"key":"1","value":{"Col1":"Some Value"}},
  {"key":"2","value":{"Col1":"Another Value"}},
]}

Хорошо, я бы хотел сопоставить это с

[{"key":"1","value":{"Col1":"Some Value"}},
  {"key":"2","value":{"Col1":"Another Value"}}]

Я рассматриваю использованиеФункция «Список», чтобы сопоставить ответ, но я хотел знать потенциальные накладные расходы при выполнении чего-то подобного ??Стоит ли это ... или я должен рассмотреть вопрос об изменении всего моего кода для обработки другого ответа ??

Спасибо, Дамо

Ответы [ 2 ]

5 голосов
/ 03 сентября 2010

Функция списка выполняется в отдельном процессе (couchjs), который подключен к couchdb через стандартный ввод / вывод. Данные сериализуются в / из JSON для связи с этим каналом. Другими словами, все ваши строки будут сериализованы и отправлены в couchjs; и couchjs отправит результаты обратно.

Следовательно, функция списка добавит (как минимум) задержку O (n) для получения ваших результатов. Для небольшого (я говорю менее 10000 документов, но это зависит от ваших потребностей) просмотра результатов, оно того стоит. Для очень большого количества строк вы можете найти выгоду в обновлении своих клиентов.

0 голосов
/ 04 сентября 2010

Я использую JSON_XS для форматирования результата, затем curl, awk и другие утилиты unix для переформатирования результата. В этом случае симпатичная печать JSON не помогает так:

curl -s -S --compressed -X GET 'your_view_url' | sed -e '/^{"rows"://' -e '/^]}/]/'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...