Django开发中关联查询优化(django-debug-toolbar)

当我们需要关联查询的时候,发现页面加载数据非常慢,又不知道什么原因,我们可以安装一个叫django-debug-toolbar的插件来帮助我们分析。

一、安装django-debug-toolbar

  1. 在pycharm终端输入,下载安装django-debug-toolbar
    pip install django-debug-toolbar
    
  2. 在原来项目的配置文件中,需要修改几个地方
    1. 在setting.py文件中的INSTALLED_APPS中加上红框中的语句(位置随意)
      在这里插入图片描述
    2. 接着在setting.py文件中的MIDDLEWARE中加上红框中的语句(放在最前面,最先调用,最后结束)在这里插入图片描述
    3. 因为django-debug-toolbar 前端是使用js实现的,所以要引入jQuery库在这里插入图片描述
    4. 最后在urls.py文件最后加上红框中的语句,导入需要导入的包,导入的时候注意一下,不要导入错了!在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
  3. 运行我们的程序,在浏览器的右边可以看见toolbar在这里插入图片描述

二、检查sql语句

  1. 可以发现在执行关联查询的时候,每一条语句又单独做了一次请求,一共有5条相似的请求。
    在这里插入图片描述

  2. 那么,如何把5条相似的请求和成一个请求完成呢?在Django框架中,一对一或者多对一的关联查询中,在语句最后加上select_related即可

    records = record.objects.filter(is_deleted=0).select_related('car')
    

再看sql的详细执行语句,就没有相似查询了。
在这里插入图片描述
如果是多对多查询,则使用prefetch_related(‘car’)(预抓取)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值