gpt4 book ai didi

python - Flask 查询 MongoLab 的速度非常慢

转载 作者:可可西里 更新时间:2023-11-01 10:42:54 27 4
gpt4 key购买 nike

我有 Mongolab 数据库,其中包含小型时间序列文档的集合。

每个文档都包含一段特定时间序列(每个文档中特定股票的 250 个每日价格值)。该集合在查询字段上建立索引。

我需要查询链接到一只特定股票的所有切片,如下所示:

cursor = db.timeseries.find({'stock':'IBM'})    # this line executes in very small time
slices = [slice for slice in cursor] # this line takes 10 seconds

# to give an idea, cursor.count() could be anywhere between 10 and 40

如果我在 python 解释器中运行这段代码,它会在不到 300 毫秒内完成。

如果我在同一个数据库上运行相同的代码,在本地运行的 Flask 中,它需要 10 秒 (!!!)。问题不在于使用工作正常的 find() 选择数据,而是查询所有数据。

值得注意的是,如果我将本地 Flask 应用程序连接到本地 mongodb,它运行良好

我没有发现网上提到的类似 Flask 特定问题。有什么线索吗?

最佳答案

我以一种有点幼稚的方式解决了这个问题:

而不是依赖Flask-PyMongo ,我只是简单地使用了 pymongo像往常一样在 flask 应用程序中运行,它的运行速度非常快:

快速 - pymongo 版本

# use pymongo in a classic way

mongolab_uri = 'mongodb://<username>:<password>@dsxxxxxx.mongolab.com:55802/<dbname>'
connection = pymongo.MongoClient(host=mongolab_uri)
db = connection['<dbname>']
coll = db.<collection_name>

# from here query and do whatever you need to

慢 - Flask-Pymongo 版本

from flask.ext.pymongo import PyMongo
app.config['MONGO_URI'] = 'mongodb:...'
mongo = PyMongo(app)
coll = mongo.db.<collection_name>

关于python - Flask 查询 MongoLab 的速度非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32445883/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com