私のクライアントの1人は、Django管理者からクライアントリストを生成しています。現在の状態、取得した状態、過去の状態でクライアントを分割します。DjangoとSQLの質問:データベースのヒット数を減らす
次のように現在、そのリストのビューのコードは次のとおりです。それは私が行う方法がありますかなり確信して3回データベースを打つよう
def clients_list(request):
current_clients = Client.objects.all().filter(status='current')[:10]
acquired_clients = Client.objects.all().filter(status='acquired')[:10]
past_clients = Client.objects.all().filter(status='past')[:10]
return render_to_response('clients/list.html', {
'current_clients': current_clients,
'acquired_clients': acquired_clients,
'past_clients': past_clients
})
は今、私は、これは理想的ではありません知っています1つのクエリだけです。このコードをリファクタリングしてデータベースに一度しかヒットせず、Pythonを使用して3つの変数に結果を分割することは可能ですか?それとも、私のアプリケーションの些細な部分に重すぎることを強調していますか? 「あまりにも多くのストレス」:あなたのアプリをプロファイリングし、これは深刻なボトルネックになって知ってきた場合を除き
おかげで、
マット
遅いですか?そうでない場合は、1つ進み、他の場所で最適化します。 – ebo