【问题标题】:Really slow fetch in MeteorMeteor 中的获取速度真的很慢
【发布时间】:2015-11-23 19:08:32
【问题描述】:

我正在从 Meteor/MongoDB 的集合中提取数据。总共大约有 15,000 个文档,查询大约提取了其中的一半(8,100 个)。 Kadira 报告说,提取(在对其进行任何操作之前)需要 5-7 秒。

相关字段上有索引,我可以在 20-50 毫秒内运行 find() - 所以问题在于获取,而不是发现。而这一次不包括实际对文档做任何事情 - 它只是 find()。

每个文档大约有十几个字段,主要是带有几个 ISODates 和几个 1-2 个字符串的数组的短字符串(

这一切都在服务器上 - 没有任何东西被发送到客户端。

持续时间正常吗?如果没有,我可以考虑做些什么来加快速度?

【问题讨论】:

  • 如果你运行相同的查询,返回相同数量的文档,使用 mongodb cli 你得到相同的持续时间吗?可能只是一端连接速度慢,而不是 fetch 方法的问题。
  • 1.减少您要发布的字段数量,2. 减少您同时发布的文档数量(您真的需要客户端上的所有 8k 文档吗?) 3. 如果您在服务器上进行聚合某种使用 mongo 聚合框架,让 db 直接完成工作,4. 固态磁盘!
  • @michel-floyd:这一切都在服务器上——没有任何东西被发布到客户端。这是支持某些自定义报告的例程的一部分。服务器从客户端获取报告参数(哪些集合、字段等),然后有效地将集合连接在一起。然后将结果放入一个集合中,该集合会以零碎的方式发送给客户端。那部分工作正常。不过,听起来我可能需要重新架构整个东西——我从来没有想过将 5 兆字节的数据拉入服务器上的内存需要这么长时间。
  • @brian-shamblen:不是连接问题——这一切都发生在服务器上。
  • 另一个数据点。在 RoboMongo 中,如果我运行查询并执行 toArray(),则只需不到一秒钟。看起来这应该花费与流星的 fetch() 一样多的时间。似乎这里发生了一些奇怪的事情。

标签: meteor mongodb-query


【解决方案1】:

嗯...不确定是什么原因造成的,但从一个数据库托管提供商更改为另一个解决了它。

【讨论】:

  • 愿意分享之前和之后的数据库托管服务提供商吗?
  • modulus.io --> compose.io
  • 哈哈我在 compose.io 上遇到了同样的问题,你有没有诊断过它?我无法切换提供商
  • 我从未诊断过它。我认为这是模数配置的问题。对不起...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 2021-12-14
相关资源
最近更新 更多