django-ORM相关代码及其sql执行次数
1.普通情况:通过log可以看出,这种情况下,访问了1次数据库
def test(request):
"""测试连表"""
users = rbac_models.UserInfo.objects.all()
for user in users:
print(user.username)
print(user.password)
print(user.nickname)
print(user.email) return HttpResponse("OK")
控制台:

2.普通情况:访问外键,可以看出,访问了4次数据库
def test(request):
"""测试连表"""
users = rbac_models.UserInfo.objects.all()
for user in users:
print(user.username)
print(user.usertype.name)
return HttpResponse("OK")

3.使用selected_related,主动连表查询,可以看出,访问了1次数据库
def test(request):
"""测试连表"""
users = rbac_models.UserInfo.objects.all().select_related("usertype")
for user in users:
print(user.username)
print(user.usertype.name)
return HttpResponse("OK")

4.连表降低性能,我们可以使用被动连表查询prefetch_related,可以看到访问了数据库2次,查询n个外键字段时,访问n+1次数据库.
def test(request):
"""测试连表"""
users = rbac_models.UserInfo.objects.all().prefetch_related("usertype")
for user in users:
print(user.username)
print(user.usertype.name)
return HttpResponse("OK")

django-ORM相关代码及其sql执行次数的更多相关文章
- Django学习笔记之Django ORM相关操作
		一般操作 详细请参考官方文档 必知必会13条 <> all(): 查询所有结果 <> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 <> ... 
- Django ORM相关的一些操作
		一般操作 看专业的官网文档,做专业的程序员! 必知必会13条 <1> all(): 查询所有结果 <2> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象 ... 
- django—ORM相关
		常用的QuerySet方法 1.all() 查询表中所有数据,返回一个QuerySet对象列表 2.filter() 查询满足条件的数据,返回一个QuerySet对象列表 3.get() 查询指定的数 ... 
- 命令行方式使用abator.jar生成ibatis相关代码和sql语句xml文件
		最近接手一个老项目,使用的是数据库是sql server 2008,框架是springmvc + spring + ibatis,老项目是使用abator插件生成的相关代码,现在需要增加新功能,要添加 ... 
- Django ORM相关
		1. ORM 外键关联查询和多对多关系正反向查询 Class Classes(): name = CF class Student(): name = CF class = FK(to="C ... 
- Django框架详细介绍---ORM相关操作
		Django ORM相关操作 官方文档: https://docs.djangoproject.com/en/2.0/ref/models/querysets/ 1.必须掌握的十三个方法 <1& ... 
- ORACLE查看SQL的执行次数/频率
		在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻辑上做出优化处理,要么是业务特殊性所导致.如果执行频繁的S ... 
- PLSQL_查询SQL的执行次数和频率(案例)
		2014-12-25 Created By BaoXinjian 
- PLSQL_监控有些SQL的执行次数和频率
		原文:PLSQL_监控有些SQL的执行次数和频率 2014-12-25 Created By 鲍新建 
随机推荐
- PAT 1055 集体照 (25)(STL-list+代码)
			1055 集体照 (25)(25 分)提问 拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排 ... 
- Santa Claus and a Place in a Class
			/* Santa Claus is the first who came to the Christmas Olympiad, and he is going to be the first to t ... 
- LUOGU P4408 [NOI2003]逃学的小孩(树的直径)
			题目描述 Chris家的电话铃响起了,里面传出了Chris的老师焦急的声音:“喂,是Chris的家长吗?你们的孩子又没来上课,不想参加考试了吗?”一听说要考试,Chris的父母就心急如焚,他们决定在尽 ... 
- POJ3687.Labeling Balls 拓扑排序
			Labeling Balls Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13201 Accepted: 3811 Descr ... 
- 合成冷色黑暗恐怖魔法师图片的PS教程
			教程主要使用Photoshop合成黑暗风格的魔法师施法场景,整体的场景效果以冷色风格为主,加上素材的叠加完成最终效果图,希望朋友可以喜欢.效果图: 先把背景拖进去,用工具吧字母弄掉. 加一个调色图层 ... 
- Netty 零拷贝(一)Linux 零拷贝
			Netty 零拷贝(一)Linux 零拷贝 本文探讨 Linux 中主要的几种零拷贝技术以及零拷贝技术适用的场景. 一.几个重要的概念 1.1 用户空间与内核空间 操作系统的核心是内核,独立于普通的应 ... 
- filter  死循环(tomcat 启动完成 ,自动执行filter.dofilter,导致tomcat 启动超时)     ,  tomcat 启动和 servers 启动 不同
			package com.diancai.interceptor; import java.io.IOException; import javax.servlet.Filter; import jav ... 
- linux 安装 rz sz 快速上传和下载文件
			## ubuntu系统 apt install lrzsz 
- Vue2.0+ElementUI+PageHelper实现的表格分页
			Vue2.0+ElementUI+PageHelper实现的表格分页 前言 最近做了一些前端的项目,要对表格进行一些分页显示.表格分页的方法有很多,从宏观上来说分为物理分页和逻辑分页,由于逻辑分页(即 ... 
- Redis可以作为简单搜索引擎优化查询
			在日常开发中在遇到一些大数据量的查询的时候,其实可以换种思路采用redis事先都缓存起来,然后通过redis里面进行结果集的运算. 原来的做法可能是 查询SQL太复杂,然后将SQL进行拆分成多个子SQ ... 
