[TLDR] CouchDB是否为未修改的文档缓存和重用map / reduce函数的结果?
背景信息: 在我的销售点(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
map reduce函数,以检查数量是否大于零。对于这种方法,我会遇到任何性能问题,还是建议您在项目文档中创建Total sold, Quantity in hand
因此,每次调用map reduce函数时,couchdb是某种如何缓存未修改的文档结果并处理新的和修改的文档,还是每次都处理所有文档?
答案 0 :(得分:0)
是的,CouchdDB缓存了地图/缩小文档。因此,如果您多次查询同一视图,Couch将为您提供缓存的版本。如果将其他数据集添加到数据库,则Couch将更新视图。
要查看Couch缓存视图,可以尝试在包含很多文档的数据库上创建新视图: