1. model의 존재 여부나 비교시에는 foo.bar 보단 foo.bar__id를 사용하자 - 불필요한 database hit을 줄여줌

2, filter 사용시에도 마찬가지. Foo.objects.filter(blah=bar) 보단 Foo.objects.filter(blah=bar__id) 로.

3. model object 자체가 아니라 단순히 값만 필요할 때에는 QuerySet.values()나 QuerySet.values_list() 를 사용하자.

4. 이미 갖고 있는 값을 또 다시 찾지 말자.

ex ) foreign key 값이 필요한 경우 : foo.bar.id 대신 foo.bar_id 를 쓰면 된다.

5. Python에서 기본 자료형으로 Decimal은 Float에 비해 느리다. (http://stackoverflow.com/questions/195116/python-decimal)

   현재 쓰고 있는 2.7.3 버전에서도 저 정도는 아니지만 동일한 코드로 테스트 해 보니

FLOAT 0.00903288048187

DECIMAL 0.84641688295

   와 같은 결과가 나왔다. FloatFields를 쓰자.

6. QuerySet.select_related()

6-1. get_object_or_404 + select_related : get_object_or_404(Model.objects.select_related(), foo=bar)

+ Recent posts