MongoDB-1操作
在使用mongo作为数据库的安装程序上进行负载测试时,我注意到mongo经常记录属于同一操作的此类消息:MongoDB-1操作,mongodb,Mongodb,在使用mongo作为数据库的安装程序上进行负载测试时,我注意到mongo经常记录属于同一操作的此类消息: Thu May 16 20:44:20.101 [conn3] command voterdb.$cmd command: { group: { ns: "vote", $reduce: function ( curr, result ) { result.count++; }, cond: { p: "59a0f4cd-8c0c-49c4- 8a11-0e1ac6d89c4a" }, in
Thu May 16 20:44:20.101 [conn3] command voterdb.$cmd command: { group: { ns: "vote",
$reduce: function ( curr, result ) { result.count++; }, cond: { p: "59a0f4cd-8c0c-49c4-
8a11-0e1ac6d89c4a" }, initial: { count: 0 }, out: "inline", key: { p: 1, q: 1, a: 1 } }
} ntoreturn:1 keyUpdates:0 numYields: 2 locks(micros) r:228316 reslen:876 136ms
这个应用程序很简单,我将文档添加到集合中,随着每个文档的添加,我需要更新属于每种类型的文档数量。因此,当此集合中的文档按类型分组时,将执行分组操作
我注意到,当测试结束时,mongo一直显示这些消息,并在测试结束几分钟后处理这些分组查询(这意味着查询被延迟服务)
我读到mongo是一个贪婪的作家,我也读到了关于屈服操作的文章。我是否正确地假设插入优先于分组,并且分组操作产生后测试处理 MongoDB在DBs上使用读写器锁,这意味着一个写器在DB上拥有一个独占锁,而多个读写器可以共享一个锁。为了防止长时间运行的操作阻塞写入和读取队列,MongoDB支持让步。主要的方法是围绕着这样一个想法,即内存中的操作应该首先快速提供,而不必等待进入磁盘的操作。下面是一个链接,它提供了关于屈服和分析统计数据的更多细节 还有一些关于应用程序描述的想法。我必须详细介绍一下,特别推荐最好的方法,但我觉得有一种更有效的设计可以帮助您完成工作
你的问题似乎都在这一页上得到了回答:有没有什么没有涵盖的?