我对mongodb比较新,并且在pymongo中遇到了性能问题。我有一个50 GB(未压缩)20 GB(通过WiredTiger压缩)的集合,大约有3900万个文档。在索引字段上查询它会得到大约125,000个文档和150 MB未压缩的结果。当我在mongo shell中执行以下操作时,大约需要一秒钟。
var result = db.my_collection.find(my_query).toArray()
然而,当我在pymongo做同样的事情时,它需要超过7秒。
db = pymongo.MongoClient()['my_db']
result = list(db['my_collection'].find(my_query))
一些额外信息:
我使用的是Ubuntu 14.04,python 2.7.6,pymongo 3.2和mongo 3.2。
我认为我的pymongo配置为使用C,因为我安装了python-dev,pymongo.has_c()和bson.has_c()都显示为True。
一切都在本地运行。
我发现很难相信pymongo比mongo shell慢7倍。我错过了什么?