Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化 引言 在数据库存在外键的其情况下,使用select_related()和prefetch_related()很大程度上减少对数据库的请求次数以提高性能 1.实例准备 模型: 1. ...
分类:
其他好文 时间:
2018-06-23 14:34:46
阅读次数:
281
Django model查询 select_related()查询优化 prefetch_related()查询优化 select_related 和 prefetch_related。前者适用于单条数据的查询集缓存。后者使用于大的查询集缓存 普通的foreign key用select_relate ...
分类:
其他好文 时间:
2018-06-13 00:58:32
阅读次数:
187
Django查询优化 Django的查询优化用到两个函数——select_related()和prefetch_related()。 select_related()用的是连表join的方式,主要处理一对一和一对多情况下的优化查询 prefetch_related()用的方式是分别查询每张表,然后用 ...
分类:
数据库 时间:
2018-01-30 21:08:10
阅读次数:
3151
详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化 详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化 在数据库有外键的时候,使用 select_rel ...
分类:
Web程序 时间:
2017-12-30 18:09:27
阅读次数:
228
一、select_related查询优化select_related通过多表join关联查询,一次性获得所有数据,通过降低数据库查询次数来提升性能,但关联表不能太多,因为join操作本来就比较消耗性能。本文通过Djangodebugtoolbar工具来直观显示查询次数、查询语句,如果不会使用“Djangodebugtoolba..
分类:
其他好文 时间:
2017-10-31 10:57:39
阅读次数:
151
1.普通情况:通过log可以看出,这种情况下,访问了1次数据库 控制台: 2.普通情况:访问外键,可以看出,访问了4次数据库 3.使用selected_related,主动连表查询,可以看出,访问了1次数据库 4.连表降低性能,我们可以使用被动连表查询prefetch_related,可以看到访问了 ...
分类:
数据库 时间:
2017-10-09 22:43:52
阅读次数:
245
这是本系列的第二篇,内容是 prefetch_related() 函数的用途、实现途径、以及用法。 本系列的第一篇在这里 第三篇在这里 3. prefetch_related() 对于多对多字段(ManyToManyField)和一对多字段。能够使用prefetch_related()来进行优化。也 ...
分类:
其他好文 时间:
2017-04-17 11:04:34
阅读次数:
279
在数据库有外键的时候,使用 select_related() 和 prefetch_related() 可以很好的减少数据库请求的次数,从而提高性能。本文通过一个简单的例子详解这两个函数的作用。 1. 实例的背景说明 假定一个个人信息系统,需要记录系统中各个人的故乡、居住地、以及到过的城市。数据库设 ...
分类:
其他好文 时间:
2017-03-09 13:20:40
阅读次数:
195
感觉要DJANGO用得好,ORM必须要学好,不管理是内置的,还是第三方的ORM。 最最后还是要到SQL。。。。。:( 这一关,慢慢练啦。。 实例详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化 http://blog.job ...
分类:
其他好文 时间:
2016-07-07 09:45:00
阅读次数:
148
在数据库有外键的时候,使用select_related() 和 prefetch_related() 可以很好的减少数据库请求的次数,从而提高性能。本文通过一个简单的例子详解这两个函数的作用。虽然QuerySet的文档中已经详细说明了,但本文试图从QuerySet触发的SQL语句来分析工作方式,从而...
分类:
其他好文 时间:
2015-05-12 11:01:09
阅读次数:
157