2014-04-29 202 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在網站上加載你的數據。