【发布时间】:2016-06-23 20:23:54
【问题描述】:
当我使用查询 db.find({}, {'_id':0}) 在 MongoDB 中一次查询整个数据时,数据检索太慢了。
我正在使用 PyMongo
如何使用 Python 驱动程序更快地检索所有文档。
我认为索引可以使数据检索更快,但是如何对整个集合应用索引以使db.find({}) 对整个集合的查询运行得更快。
【问题讨论】:
当我使用查询 db.find({}, {'_id':0}) 在 MongoDB 中一次查询整个数据时,数据检索太慢了。
我正在使用 PyMongo
如何使用 Python 驱动程序更快地检索所有文档。
我认为索引可以使数据检索更快,但是如何对整个集合应用索引以使db.find({}) 对整个集合的查询运行得更快。
【问题讨论】:
索引将大大加快在集合中查找文档的子集,但不会(据我所知)加快提取整个集合的速度。
索引加快查找子集的原因是 mongo 不必遍历每个文档以查看它们是否与查询匹配 - 相反,mongo 可以通过在索引中查找每个特定文档位置来找到它。
如果您要返回整个集合,则索引无效。 Mongo 基本上必须遍历集合中的每个文档。
您选择的存储引擎会影响速度,所以我建议您阅读 Wired Tiger 和 mmapV1 之间的区别。我知道有第三方的,但我想不出他们。
【讨论】: