2014-04-29 205 views
2

我使用碎片建立一个用于监控MongoDB用户数据的管理网站。我的查询正在运行,但速度很慢..加载HTML大约需要3〜5秒。烧瓶查询Mongdb的速度很慢

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

烧瓶码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) 

烧瓶代码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个结果。

+1

有多少条目?这是拉动整个收藏。你的数据库在哪里?你的应用程序在哪里托管?你在运行什么样的硬件。所有需要考虑的事项以及您在问题中未提供的信息。 –

+0

@NeilLunn我添加了更多关于情况的信息。我不认为这是服务器问题。 – Jake

+0

我很好奇为什么你需要在这个“服务”层功能中的“for”循环,你不能只在整个结果对象中传递/绑定/模型,并让它由你的模板渲染? –

回答

1

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