optimization database operations
作者:
粟米一粒 | 来源:发表于
2018-01-10 13:08 被阅读0次
- Understand cached attributes
>>> 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
- Insert in bulk
- use create
- Don’t order results if you don’t care
- Use foreign key values directly
- use entry.blog_id rather than entry.blog.id
本文标题:optimization database operations
本文链接:https://www.haomeiwen.com/subject/lvconxtx.html
网友评论