前提・実現したいこと
DjangoのQuerySetからデータを1件ずつ取得してdict型要素としてlistに格納する処理を実装しているのですが、
パフォーマンスを向上させたいと考えています。
該当のソースコード
python
1# SearchModel:データ取得対象のmodel 2# result_list:取得結果格納用のlist 3# search_id:SearchModelから取得したいデータのid 4from .models import SearchModel 5result_list = [] 6search_id = [1, 9, 6, 10, 2] 7 8for id in search_id: 9 result_list.append(SearchModel.objects.get(id=id))
上記のコードだとsearch_idの個数分クエリが発行されてしまうためパフォーマンスが悪いです。
試したこと
最初にmodelを全件取得してdict型として保持した後にsearch_idの要素のみ抜いてくるという方法も考えましたが、
結局search_idの個数分のループを回すことになるため、
何か他の方法はないか検討しております。
ご教示宜しくお願い致します。
補足情報(FW/ツールのバージョンなど)
python 3.7
Django 2.2
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/22 12:40
2020/04/22 12:48
2020/04/23 01:02
2020/04/26 13:45