>>> entry = Entry.objects.get(id=1)
>>> entry.blog# Blog object is retrieved at this point
>>> entry.blog# cached version, no DB access
>>> entry = Entry.objects.get(id=1)
>>> entry.authors.all()# query performed
>>> entry.authors.all()# query performed again
Do database work in the database rather than in Python
Retrieve everything at once if you know you will need it
Use QuerySet.select_related() and prefetch_related()
Don’t retrieve things you don’t need
Use QuerySet.values() and values_list()
Use QuerySet.defer() and only()
Use QuerySet.count() rather than len(query_set)
if there is cache use count() equals Len()
Use QuerySet.exists() rather than if query_set
if there is cache user exists() equals if query_set
Use QuerySet.update() and delete() rather than get query set then save