Flask查询Mongdb的速度很慢 [英] Flask is slow to query Mongdb

查看:373
本文介绍了Flask查询Mongdb的速度很慢的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用小块建立一个用于监控MongoDB用户数据的管理网站。我的查询工作,但它是非常缓慢..大约需要3~5秒加载HTML。

我测试插入查询,它的工作时间少于0.5秒。我不认为这是服务器问题。



Flask代码A (它使用pymongo连接MongoDB)
$ b $ p $ @ app.route('/ admin / dashboard / phonebook')
def admin_phonebook():
collection = db.phonebook
cnt = collection.find()。count()
result = collection.find()
在范围内(cnt):
flash(result [i] ['名称'),'名称')
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 ()
我在范围内(cnt):
flash(resu (名称)]
flash(result [i] ['phone'],'phone')
return render_template('admin / dashboard / phonebook_register.html' ,长= cnt)

电话簿数据表只有20个结果。

解决方案

如果您使用的是不同的数据库服务器,则可能会很慢。使用jQuery在网站上加载数据。


I use flaks to build a admin website for monitoring MongoDB user data. My query is working but it is very slow.. It takes about 3~5 seconds to load HTML.

I tested insert query and it works less than 0.5 seconds. I don't think it is a server problem.

Flask codes A ( it uses pymongo to connect 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 (It is same speed to show result like above codes)

@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)

Is this slow because I count entire database? The phonebook data table has only 20 results.

解决方案

If you are using different database server, it could be slow. Use jQuery to load your data on website.

这篇关于Flask查询Mongdb的速度很慢的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆