Djangoを使っていて、イケてないSQLがありました。 そもそも、僕はDjangoのprefetch_relatedとselect_relatedがよくわかっていませんでした。 今回は、それを調べたので説明を書きます。 prefetch_relatedとselect_relatedって? 準備 モデルを用意する。 データを用意する SQLをログに出力する。 試行 select_related prefetch_related select_relatedとprefetch_related Prefetchオブジェクト 終わり prefetch_relatedとselect_relatedって? 両方ともDjagnoのForeignKeyに関係するORMのメソッド。 とりあえず使ってみます。 ちなみにDjangoのバージョンは 1.11 です。 Pythonのバージョンは 3.6 です。
![djangoのSQL実行を最適化する(prefetch_related/select_related/Prefetch) - matobaの学んだこと](https://cdn-ak-scissors.b.st-hatena.com/image/square/db59b0ba7e905b3393bd6f56c593ff41c7ddd2a7/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fm%2Fmtb_beta%2F20180413%2F20180413003159.png)