Flask 查询 Mongodb 很慢
Posted
技术标签:
【中文标题】Flask 查询 Mongodb 很慢【英文标题】:Flask is slow to query Mongdb 【发布时间】:2014-06-14 21:01:01 【问题描述】:我使用 flaks 构建了一个用于监控 MongoDB 用户数据的管理网站。我的查询正在运行,但速度很慢。加载 html 大约需要 3~5 秒。
我测试了插入查询,它的工作时间不到 0.5 秒。我不认为这是服务器问题。
Flask代码A(使用pymongo连接MongoDB)
@app.route('/admin/dashboard/phonebook')
def admin_phonebook():
collection = db.phonebook
cnt = collection.find().count()
result = collection.find()
for i in range(cnt):
flash(result[i]['name'],'name')
flash(result[i]['phone'],'phone')
return render_template('admin/dashboard/phonebook.html',length = cnt)
Flask Codes B(与上述代码显示结果的速度相同)
@app.route('/admin/dashboard/phonebook_register')
def admin_phonebook_register():
collection = db.phonebook
result = collection.find().sort('reg_date',-1)
cnt = collection.find(,'_id':0).count()
for i in range(cnt):
flash(result[i]['name'],'name')
flash(result[i]['phone'],'phone')
return render_template('admin/dashboard/phonebook_register.html',length = cnt)
这是因为我计算了整个数据库而变慢了吗?电话簿数据表只有 20 个结果。
【问题讨论】:
有多少条目?这是拉动整个系列。你的数据库在哪里?您的应用程序托管在哪里?您正在运行什么样的硬件。所有需要考虑的事项以及您在问题中未提供的信息。 @NeilLunn 我添加了有关情况的更多信息。我不认为这是服务器问题。 我很好奇为什么你需要在这个“服务”层函数中使用“for”循环,你不能在整个结果对象中传递/绑定/模型并让它由你的模板呈现吗? 你是对的.. 我应该将整个结果发送到 HTML。它是 MongoDB,它是 JSON 类型的数据库。我从没想过将 JSON 数据转换为 HTML 文件。 “for”循环是在 Flask flatform 上以 HTLM 显示数据的方法之一。 如何将整个结果发送到 html?我必须使用 JSON 吗? 【参考方案1】:如果您使用不同的数据库服务器,它可能会很慢。使用 jQuery 在网站上加载您的数据。
【讨论】:
以上是关于Flask 查询 Mongodb 很慢的主要内容,如果未能解决你的问题,请参考以下文章