search
LoginSignup
30

More than 5 years have passed since last update.

posted at

updated at

Organization

ハイパフォーマンスDjango - Model

High Perfomance Djangoを読んでとても勉強になったので、備忘録メモ。

クエリの数を減らせ

これをちゃんと使ってね。
開発中は、Django Debug Toolbarで発行クエリを確認。

クエリの実行時間を短く

  • indexをきちんと張る
  • でかいJoinは避ける
  • でかいテーブルにはall()はやめて、LIMITかける
  • 存在チェックはspam.count() > 0じゃなくて、spam.exists()

Foreign Keys

Generic Foreign Keysは便利だけど、裏でパフォーマンス悪いクエリ投げてることある。
自分で外部キー張った方がいい場合も。

cached_propety

実行コストがかかる & 何度も呼ばれるプロパティに対しては、キャッシュが有効。
https://docs.djangoproject.com/ja/1.9/ref/utils/

扱うオブジェクトは小さく

得られる結果がでかい場合は、これらを使ってパフォーマンスあげよう。

クエリキャッシュ

この2つが書籍の中では紹介されてたけど、Jonny Cacheは開発止まってた。
(Django1.5以上では使えなそう...)

自作するなら、gumiのブログで紹介されてるAbstructCachedModelが参考になる。
Djangoでキャッシュ機能付きモデル - gumi Engineer’s Blog

その他

勉強になったその他の資料

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
30