select_relatedとprefetch_relatedでクエリの最適化 models.pyにてOneToOneFieldやForeignKey、ManyToManyField(外部キー)を多用しすぎると次第にデータベースへの接続数が多くなりページの読み込みスピードに影響を与えるようになってきます。 例えば、objects.get()などで特定のデータを取得した後に、フィールドで指定してあるForeignKeyを指定するとDjangoはもう一度データベースに接続してデータを取得しようとします。合計で2回クエリが発生するようになります。 もしくはobjects.filter()で取得したデータをfor文でループして、フィールドを指定したとしましょう。データが10個あれば、初めの1回+10回で合計11回のクエリが発生することになります。 開発を行なっているときは、sqlite3を用いるケ
![select_relatedとprefetch_related](https://cdn-ak-scissors.b.st-hatena.com/image/square/1a6c02181647c8eaa1da2b2ce11c2e8180b14244/height=288;version=1;width=512/https%3A%2F%2Fjust-python.com%2Fstatic%2Fassets%2Fimg%2Fjust_Python.png)