[終了]n+1問題の解決
2261 ワード
N+1 Query問題
1) N+1 Query
1つのクエリーで生成された結果リストをループし、結果リストの各結果に対して別のクエリーを実行します.
result_list = query_result
for r in result_list:
# query 수행
2) 2N+1 Query
3) NM+N+1 Query
N+1 Query「解決」ツール
select related同じクエリーで取得
prefetch related second queryの使用
1) select_related()
1:1または1:M関係でのみ有効(M:M関係でプリフェッチrelatedを使用)
繰り返し可能
2) prefetch_related()
繰り返しなし
3) django-auto-prefetch
N+1 Query「予測」ツール
1) Django-debug-toolbar
2) nplusone
3) Scout APM
好奇心がある
django chained relation
障害照会の確認
Reference
Reference
この問題について([終了]n+1問題の解決), 我々は、より多くの情報をここで見つけました https://velog.io/@muchogusto/종결-n1이슈를-해결해라テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol