CouchDB Моделирование документов - PullRequest
0 голосов
/ 28 марта 2019

[TLDR] Кэширует ли CouchDB и повторно использует результаты функций отображения / уменьшения для неизмененных документов?

Справочная информация: В моей точке продажи(POS) приложения, все транзакции регистрируются и создаются отдельным документом.

{ "_id": "sale_transactions_1234124", "Quanity Added": 0, "Quanity reduced": 10, "Is Discarded": "false", "saleid": "sales_523" }

{ "_id": "Purchaseorder_transactions_1234124", "Quanity Added": 5, "Quanity reduced": 0, "Is Discarded": "false" , "purchaseid": "purchase_2352"}

При любом изменении инвентаря соответствующие документы создаются как transactions, это поле _id.Таким образом, вместо хранения Total sold, Quantity in hand в Item документе, планируйте создавать карту в уменьшенном виде для извлечения каждый раз.

Каждый раз, когда я делаю продажу, должна вызываться функция уменьшения карты Quantity in hand, чтобы проверить, является ли количество больше нуля.При таком подходе я столкнусь с какой-либо проблемой производительности, или вы порекомендовали создать Total sold, Quantity in hand в документе Item

Так что каждый раз, когда мы вызываем функцию карты редукции, это может быть как-то кэшировать результаты неизмененного документа и обрабатывать новые иизмененные документы или все документы обрабатываются каждый раз?

1 Ответ

0 голосов
/ 11 апреля 2019

Да CouchdDB кэширует вашу карту / сокращает количество документов. Таким образом, если вы запрашиваете одно и то же представление несколько раз, Couch выдаст вам кэшированную версию. Если в базу данных будут добавлены дополнительные наборы данных, Couch обновит представление.

Чтобы увидеть, что Couch кэширует представления, вы можете попробовать создать новое представление в базе данных с большим количеством документов:

  1. Вызовите вид в первый раз, и вы увидите, что для получения вашего результата потребуется некоторое время.
  2. Позвоните своему представлению снова, и оно будет готово немедленно.
  3. Добавьте несколько новых документов в вашу базу данных
  4. Позвоните на ваш взгляд, и он будет готов очень быстро, если не сразу.
  5. Добавить много новых документов в вашу базу данных
  6. Снова вызовите свой просмотр, и это займет больше времени, чем когда вы только добавили несколько новых документов. Но будет готов сразу после его сборки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...