Курсор 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 = db.collection_name.find_one(
{"emp_id": 1234}, {'nameFirst': 1, 'nameLast': 1, 'emp_id': 1, }
)
Истекшее время: 1.829226017
Для информационных целей, пожалуйста, обратитесь к тому же запросу, используя find()
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())
Прошедшее время для query_cursor: 0,00215888023376
Прошедшее время для get_user_data: 1,79128599167