MongoDB Cursor挂起

use*_*423 6 mongodb pymongo

在大型项目数据库的本地副本上工作,mongodb游标似乎挂起了大多数查询.具体来说,我正在使用PyMongo,但即使是简单count()的集合也会挂起(因此问题不是python问题).

迭代光标直到它被卡住的点显示它总是发生在同一点(即同一查询) - 之后它只是挂起.尝试cursor.alive揭示它确实存在并且很好.

删除和重建指数也没有帮助.

运行mongodb 2.6.4版.和PyMongo版本3.02.db包含大约1.2M项.

有人经历过那种事吗?谢谢!

Mer*_*yan -1

我正在处理大数据,在我的实践中也有这样的案例,但原因不同。

以下是 MongoDB 游标挂起的原因:

  • 当机器负载很大或不足以处理这样的大数据时
  • sort()在没有索引的属性上调用方法时
  • 当每个文档尺寸太大且未设置请求时limit/batchSize

batchSize我可以通过添加如下查询来解决该问题:

db.players.find().batchSize(50).limt(10)
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到有关 MongoDB 批量大小的更多信息