在robomongo中查询非常快,在图片下方我确实检索了500个文档:
我在result.type
创建了索引,我的测试代码:
def get_test_data(limit):
return collection.find({'result.type':'detail'})[:limit]
def test_one_read_multi_process():
print('mongodb read')
t = Timer()
TASKS = list(get_test_data(500))
print(t.elapsed_time, '\n')
pymongo需要21.716秒,这太慢了。
测试mongodb 3.6,pymongo最新,python 2& 3
也许与...有关 Pymongo significantly slower than mongo shell?
但我想要一个解决方案。
答案 0 :(得分:0)
也许您可以使用c扩展程序安装pymongo
,以检查您是否已完成:
import pymongo
pymongo.has_c()
False
表示不是True
表示是。
要安装带有c扩展名的pymongo
,您需要:
# Ubuntu or Debian
sudo apt-get install build-essential python-dev
# Red Hat based distributions
sudo yum install gcc python-devel
然后pip install pymongo
。
有一些参考:
答案 1 :(得分:0)
到目前为止get_test_data
获取集合中的所有文档并对结果进行切片。
您希望对查询应用限制。
def get_test_data(limit):
return collection.find({'result.type':'detail'}, limit=limit)