美文网首页
Models and Databases 10.数据库优化

Models and Databases 10.数据库优化

作者: xncode | 来源:发表于2019-07-24 15:09 被阅读0次

先审计

Blog.objects.filter(title='My Blog').explain()
返回字符串来说明数据库中如何执行该查询

使用三方库 django-debug-toolbar

通用优化方式

添加索引 在Meta.indexes 或 Field.db_index

合适的字段类型

理解查询

各司其职

数据库过滤数据,记得使用F表达式来在本行过滤出来
使用数据库的聚合操作来进行统计

一次取完

select_related prefetch_related
prefetch_related_objects

只取需要的数据

values values_list 只取某些字段

如果还是想要完整的object,可使用defer指定某些不要的字段,也可使用only指出只需要的字段
例如,取得文章,只需要文章标题,则可在defer中指出文章内容字段,这样节省取出和转换时间

使用count和exists 但如果之后要用内容就不需要这一步了

使用update

如果只需要外键的id,只获取entry.blog.id避免join

不需要不排序

批量插入

Entry.objects.bulk_create([
Entry(headline='This is a test'),
Entry(headline='This is only a test'),
])

my_band.members.add(my_friend)
# 多对多关系字段的

相关文章

网友评论

      本文标题:Models and Databases 10.数据库优化

      本文链接:https://www.haomeiwen.com/subject/baatrctx.html