美文网首页
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