gpt4 book ai didi

node.js - 通过 nodejs 进行 Mongodb 并行查询

转载 作者:IT老高 更新时间:2023-10-28 13:23:22 24 4
gpt4 key购买 nike

我正在尝试通过 Node 异步运行许多 mongodb 查询。但是他们仍然需要时间来运行..数据库已编入索引并完全优化。有没有一种方法可以通过 mongodb admin 增加查询速度时间......或者通过为其分配更多内存来提高其性能。

当我在控制台上看到时,查询正在一一运行。还有一些时间太长了……导致没有响应……

2015-12-29T10:31:48.958-0800 I COMMAND  [conn63] command consumers.$cmd command: count { count: "consumer1s", query: { ZIP: 37089, $or: [ { ADULTS_F_18_24: "Y" }, { ADULTS_F_24_35: "Y" } ] } } planSummary: IXSCAN { ZIP: 1.0, GENDER: 1.0 } keyUpdates:0 writeConflicts:0 numYields:1 reslen:44 locks:{ Global: { acquireCount: { r: 4 } }, MMAPV1Journal: { acquireCount: { r: 4 } }, Database: { acquireCount: { r: 2 } }, Collection: { acquireCount: { R: 2 }, acquireWaitCount: { R: 2 }, timeAcquiringMicros: { R: 54270 } } } 146ms

2015-12-29T10:31:54.925-0800 I COMMAND [conn62] command consumers.$cmd command: count { count: "consumer1s", query: { ZIP: 37024, $or: [ { ADULTS_F_18_24: "Y" }, { ADULTS_F_24_35: "Y" } ] } } planSummary: IXSCAN { ZIP: 1.0, GENDER: 1.0 } keyUpdates:0 writeConflicts:0 numYields:88 reslen:44 locks:{ Global: { acquireCount: { r: 178 } }, MMAPV1Journal: { acquireCount: { r: 172 } }, Database: { acquireCount: { r: 89 } }, Collection: { acquireCount: { R: 89 }, acquireWaitCount: { R: 83 }, timeAcquiringMicros: { R: 1654781 } } } 6114ms

您好,请查看日志以了解我的问题...遵循相同计划的 2 个查询.. 执行时间差异很大...请告诉我原因以及如何解决它

以下信息必须得心应手。我正在 Macintosh 系统上运行此应用程序。 OSX Yosemite 10.10.2 处理器 3.2Ghz 英特尔酷睿 i5。内存为 8GB 1600MHz DDR3。关于如何为 mongodb 分配更多虚拟内存的任何建议

最佳答案

正如@Martin 所说,您需要进行分析。使用类似 cursor.explain确保查询使用索引并找到弱点。使用您的系统拥有的任何资源监视器(如 linux 上的 top/htop)来查看它是否内存不足或是否受 CPU 限制。

“查询一个接一个地运行”——我假设您没有使用 async.series 或类似的,它是顺序的。

关于node.js - 通过 nodejs 进行 Mongodb 并行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34492485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com