mongodb - pymongo 游标需要很长时间才能找到

标签 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 = 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

最佳答案

切换到正确的数据中心后问题得到解决。现在,数据库查询运行速度超快,不到 0.10 秒。

关于mongodb - pymongo 游标需要很长时间才能找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47584096/

相关文章:

mongodb - 从 BsonString 中提取字符串值

ruby-on-rails - 如何使用 Rails Paperclip 处理包含非字母数字字符的文件名

python - 为什么 b=(a+=1) 在 python 中是无效语法?

python - 如何在 scrapy 爬虫中使用用户名/密码进行身份验证?

mongodb - GoLang MongoDB 连接泄漏

python - 在 Python2.7 中将列表转换为字典的最佳方法是什么

python - 如何使用网站的用户名和密码在 Python 中使用网络抓取

python - PyMongo 中使用 server_info() 时出现集合对象不可调用错误

python - 迭代 pyspark Dataframe,然后为每一行与 mongoDB 交互