2
나는 flong을 사용하여 MongoDB 사용자 데이터를 모니터링하기위한 관리 웹 사이트를 구축합니다. 내 쿼리가 작동하지만 매우 느립니다. HTML을로드하는 데 약 3 ~ 5 초가 걸립니다.Flask가 Mongdb를 쿼리하는 속도가 느림
삽입 쿼리를 테스트 한 결과 0.5 초 이내에 작동합니다. 나는 그것이 서버 문제라고 생각하지 않는다.
플라스크 코드
@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)
이인가 (상기 코드와 같은 결과를 표시하는 동일한 속도()는 MongoDB를 연결하는 pymongo 사용) 전체 데이터베이스를 계산하기 때문에 속도가 느려 집니까? 전화 번호부 데이터 테이블에는 20 개의 결과 만 있습니다.
몇 개의 항목이 있습니까? 이것은 전체 컬렉션을 당기는 것입니다. 데이터베이스는 어디에 있습니까? 귀하의 신청서는 어디에서 호스팅됩니까? 어떤 종류의 하드웨어를 실행하고 있습니까? 고려해야 할 모든 것 및 질문에 제공하지 않은 정보. –
@NeilLunn 상황에 대한 추가 정보를 추가했습니다. 나는 그것이 서버 문제라고 생각하지 않는다. – Jake
이 "service"레이어 함수에서 "for"루프가 필요한 이유가 궁금합니다. 전체 결과 개체에서/bind/model을 전달하고 템플릿으로 렌더링 할 수 없습니까? –