Mongodb pymongo光标需要很长时间才能找到
Pymongo光标耗时约2秒,请建议优化以下查询的方法 查询事实Mongodb pymongo光标需要很长时间才能找到,mongodb,python-2.7,pymongo-3.x,Mongodb,Python 2.7,Pymongo 3.x,Pymongo光标耗时约2秒,请建议优化以下查询的方法 查询事实 Records in MongoDB : 120,000 Indexed Key: emp_id MongoDB Server: 3.2.11 PyMongo : 3.5 Python : 2.7 光标 要从数据库中查找文档,请使用索引字段作为筛选器,并仅投影所需字段,这需要约2秒的时间 我正在寻找优化此查询的方法,以便它可以更快 db = client["db_name"] user_data = d
Records in MongoDB : 120,000
Indexed Key: emp_id
MongoDB Server: 3.2.11
PyMongo : 3.5
Python : 2.7
光标
要从数据库中查找文档,请使用索引字段作为筛选器,并仅投影所需字段,这需要约2秒的时间
我正在寻找优化此查询的方法,以便它可以更快
db = client["db_name"]
user_data = db.collection_name.find_one(
{"emp_id": 1234}, {'nameFirst': 1, 'nameLast': 1, 'emp_id': 1, }
)
运行时间:1.829226017
为了提供信息,请使用find()引用相同的查询 查询光标的运行时间:0.00215888023376
获取用户数据所用时间:1.79128599167切换到正确的数据中心后问题已解决。现在,DB查询的速度非常快,不到0.10秒。从您的查询中,它似乎可以相当快地返回数据。因此,您的计算可能包括创建到数据库的初始连接的开销。您的数据库和运行代码的计算机/服务器在哪里?@justcompile我最终切换了数据中心,并能够运行得更快。现在大约是0.10秒。
def query_cursor():
db = client["db_name"]
cursor = db.collection_name.find(
{"emp_id": 1234}, {'nameFirst': 1, 'nameLast': 1, 'emp_id': 1, }
).limit(1)
return cursor
def get_user_data():
cursor = query_user_data()
user_data = None
for document in cursor:
user_data = document
return user_data
print(get_user_data())