【发布时间】:2014-11-18 01:34:22
【问题描述】:
我一直在做一个项目来评估 mongodb 与其他数据存储相比的速度。为此,我正在尝试对我制作的收藏进行全面扫描。我发现了探查器,所以我启用了它并设置为记录每个查询。我有一百万个对象的集合,我正在尝试计算扫描集合需要多长时间。不幸的是,当我跑步时
db.sampledata.find()
它立即将光标返回到 1000 个左右的对象。所以我写了一个python脚本来遍历游标来处理all结果。这里是:
from pymongo import MongoClient
client = MongoClient()
db = client.argocompdb
data = db.sampledata
count = 0
my_info = data.find()
for row in my_info:
count += 1
print count
这似乎花费了必要的时间。但是,当我检查分析器时,没有完整查询时间的总量,它只是一整套“getmore”操作,每个操作需要 3-6 毫秒。有什么方法可以使用分析器而不是在 python 中计时来做我想做的事情吗?我基本上只是想:
- 能够执行查询并让它返回所有结果,而不是 只是光标中的几个。
- 在探查器中获取“完整查询”的时间。获得所有结果所花费的时间。
我想做的事情可行吗?
我对 MongoDB 很陌生,所以如果之前有人问过这个问题,我很抱歉,但我在上面找不到任何东西。
【问题讨论】: