当我们需要关联查询的时候,发现页面加载数据非常慢,又不知道什么原因,我们可以安装一个叫django-debug-toolbar的插件来帮助我们分析。
一、安装django-debug-toolbar
- 在pycharm终端输入,下载安装django-debug-toolbar
pip install django-debug-toolbar - 在原来项目的配置文件中,需要修改几个地方
- 在setting.py文件中的INSTALLED_APPS中加上红框中的语句(位置随意)

- 接着在setting.py文件中的MIDDLEWARE中加上红框中的语句(放在最前面,最先调用,最后结束)

- 因为django-debug-toolbar 前端是使用js实现的,所以要引入jQuery库

- 最后在urls.py文件最后加上红框中的语句,导入需要导入的包,导入的时候注意一下,不要导入错了!



- 在setting.py文件中的INSTALLED_APPS中加上红框中的语句(位置随意)
- 运行我们的程序,在浏览器的右边可以看见toolbar

二、检查sql语句
-
可以发现在执行关联查询的时候,每一条语句又单独做了一次请求,一共有5条相似的请求。

-
那么,如何把5条相似的请求和成一个请求完成呢?在Django框架中,一对一或者多对一的关联查询中,在语句最后加上select_related即可
records = record.objects.filter(is_deleted=0).select_related('car')
再看sql的详细执行语句,就没有相似查询了。

如果是多对多查询,则使用prefetch_related(‘car’)(预抓取)
本文介绍如何使用django-debug-toolbar插件分析Django项目中的慢查询问题,并通过select_related和prefetch_related方法优化关联查询,减少数据库请求次数。
689

被折叠的 条评论
为什么被折叠?



