Djangoは管理者ページが強力なのが良い所だが、適当に使ってるとORMが雑なSQLを発行してしまうのでケアする。 まだ使い初めたばかりなので、適宜追加していく。 querysetを上書きして一覧ページのSQLを最適化する list_displayにForeignKeyのフィールドを含んでいる場合 select_related が有効になる。が select_related は null=True なFKフィールドのリレーションを辿らないため、レコードの数だけ個別のSQLで対象を取得してしまう。よって一覧ページを開いた時にSELECT文が400回ぐらい発行されたりする。 また、 select_related は null=False なFKフィールドをどこまでも辿るため、10個や20個のテーブルとJOINするSQLになる事がある。 うまい具合にやるには queryset を自分で定義する。