私の Django アプリでは、多数の SQL クエリを含むページの読み込みが他のページよりもかなり遅いことに気付きました。私は Web 開発の初日ではなく、主に Drupal のようなリソースを大量に消費する取引を行っていますが、ページごとに 150 から 200 の SQL クエリを持つ Drupal でさえ、0.5 から 0.7 秒でページを生成します。
反対側のDjangoは、ページあたりの平均クエリ数が多かれ少なかれ非常に悪いです。たとえば、私のページの 1 つは、次のような 60 のクエリを生成します。
SELECT`gamenode_gamenode`.`id`, `gamenode_gamenode`.`title`, `gamenode_gamenode`.`short_desc`, `gamenode_gamenode`.`full_desc`, `gamenode_gamenode`.`slug`, `gamenode_gamenode`.`type`, `gamenode_gamenode`.`source_gameid`, `gamenode_gamenode`.`created`, `gamenode_gamenode`.`updated`, `gamenode_gamenode`.`status`, `gamenode_gamenode`.`promote`, `gamenode_gamenode`.`sticky`, `gamenode_gamenode`.`hit_count`, `gamenode_gamenode`.`game_rank`, `gamenode_gamenode`.`share_count`, `gamenode_gamenode`.`like_count`, `gamenode_gamenode`.`comment_count` FROM `gamenode_gamenode` WHERE `gamenode_gamenode`.`id` = 1058
データを単純な文字列として出力し、ページを生成するのに 1200 ミリ秒かかります! これは、非常に単純なクエリを多数生成するためのテストのためだけに行いました。クエリの数を 10 ~ 15 に減らすと、ページ生成時間は多かれ少なかれ許容できる数に戻ります。
質問があります。ページに多くの SQL クエリがあると、なぜ Django が非常に遅いのですか? Rails、Symfony、および Drupal を使用して同様の比較を行ったところ、これらすべての「リソース ホグ」は Django よりも優れたパフォーマンスを示しました。私は何か間違ったことをしていますか、それとも Django で物事を高速化するための「秘密の」設定がありますか? あるいは、Djangonauts はそのような時間を通常と見なし、できるだけ少ないクエリを生成するコードを書くように努めているのでしょうか? これを理解するのを手伝ってください。