【问题标题】:MongoDB Cursor hangsMongoDB 光标挂起
【发布时间】:2015-08-09 06:57:22
【问题描述】:

处理大型项目数据库的本地副本时,mongodb 游标似乎对于大多数查询都挂起。具体来说,我正在使用 PyMongo,但即使是简单的 count() 也会挂起(所以问题不是 python 问题)。

迭代光标直到它卡住的点表明它总是发生在同一点(即对于同一查询) - 之后它只是挂起。 尝试cursor.alive 表明它确实还活着并且很好。

删除和重建索引也无济于事。

运行 mongodb 版本 2.6.4。和 PyMongo 3.02 版。该数据库包含大约 120 万个项目。

有人遇到过这种情况吗? 谢谢!

【问题讨论】:

    标签: mongodb pymongo


    【解决方案1】:

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

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

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

    我可以通过在这样的查询中添加 batchSize 来解决这个问题:

    db.players.find().batchSize(50).limt(10)
    

    有关 MongoDB 批量大小的更多信息,您可以找到 here

    【讨论】:

    • 请尽量在您的解释中更具描述性
    猜你喜欢
    • 2013-08-13
    • 2015-12-17
    • 1970-01-01
    • 2018-07-10
    • 2011-07-25
    • 1970-01-01
    • 2014-03-17
    • 2022-12-08
    • 2016-01-23
    相关资源
    最近更新 更多