当前位置: 首页 > 知识库问答 >
问题:

为什么我的mongodb调用这么慢?

罗昱
2023-03-14
getTestStream : function(req, res, conditions, callback) {   
  Activity.find()
    .limit(1000)
    .run(function(err, activities) {
      if (err){
        util.sendError(req, res, "Query Error", err);
      } else if (activities) {     
        res.send(activities);
      } else {
        util.send('nope');
      }
  });
}
mongoose@2.6.0
mongodb@2.0.4
node@0.6.9

共有1个答案

芮琛
2023-03-14

经过一段时间的实验,我发现了一些导致缓慢的因素,希望这能帮助任何有类似问题的人:

  • 我请求的对象很大,因此处理它们需要一些时间。对于大型对象,修改查询以只返回当前需要的字段。
  • mongoose很有用,但是当您请求大量项时,它确实会变慢,如果您想要调用速度,最好直接与node-mongodb-native接口。(在我的方案中,速度大约提高了50%+)

使用这些技术,我现在可以在更短的时间内处理4000条记录,而不是以前处理1000条记录。感谢任何发表评论的人,特别感谢盖茨副总裁指出猫鼬并不适合这种电话。

 类似资料:
  • 我注意到,当我使用条件断点进行调试时,执行速度会大大减慢。我知道这一点已经有一段时间了,现在想明白为什么。到底是什么原因导致执行如此缓慢?我知道正在添加一个条件,但是如果我自己添加条件,我不会减慢执行速度。 例如,假设我们有以下代码。假设我们添加了一个条件断点。让我们将条件设置为i==10000。 现在让我们自己写条件。 90秒完成击球(包括开始的9秒) 日食: ~9秒到达断点 第二个示例几乎是在

  • 问题内容: 我创建了一个用于显示工具提示的指令: 对应功能: 应用于此: 这是我观点的一部分,由拥有者的控制器处理 为什么必须调用才能将更改应用到,该更改是早先声明和初始化的? 问题答案: 因为附加到事件的回调超出了angular的范围;angular不知道该函数何时运行/结束,因此摘要循环永远不会运行。 调用或告诉angular更新绑定并触发任何手表。

  • 问题内容: 我所有的React项目的文件大小通常都非常大(bundle.js为4.87 mb,vendor.bundle.js为2.87 mb)。我不知道为什么这么大。我已经启用了uglifyJS,但这似乎并没有太大帮助(5.09> 4.87mb和2.9> 2.87mb) 我的package.json 有谁知道如何解决这个问题? 问题答案: 编辑 我不确定您是在Mac / IO还是Windows上

  • 我正在使用PARSE API发出GET请求。我收到一个“414请求URI太大”错误,但我不明白为什么。这是我请求的代码:

  • 在Hugo模板中,我知道您可以使用< code>function param调用函数: 但在文档中,我还看到您还可以: 我从未遇到过这种调用函数的方式(在Ruby/Python等语言中)。这是围棋特有的,还是雨果特有的?这种调用函数的方式是如何调用的?另外,如果你有不止一种类型的论点,你能做到吗?

  • 我正在解决欧拉项目的一些问题,必须生成200万质数来解决一个问题。我对埃拉托色尼筛的实现非常慢,但我不知道为什么。有人能解释一下这个实现的主要问题吗?我觉得它很漂亮,然后我发现它非常糟糕:(。我在网上找到了它的另一个实现,它比我的快得多。 编辑:感谢所有的答案!结论是过滤器是问题所在,因为它会遍历每个元素(而不仅仅是那些被标记为非素数的元素),而且每次都会创建一个新列表。用旧的循环和一轮过滤重写它