ORM 效率补充
2024-09-06 17:01:05
1、only defer
only: 获取数据表中某列或多列的值,注意获取的是对象,如果查询字段不是括号内的,效率反而变低
defer: 获取除了某列或某几列的数据,注意获取的是对象
User.objects.values('id', 'name')
User.objects.values_list('id', 'name') ret = User.objects.only('id', 'name')
for i in ret:
print(i.id, i.nme)
2、selected_related
进行跨表查询的时候,会先进行连表,这里的db是外键的字段
# 查询用户的姓名和部门名称,先链表再查询
result = User.objects.all().seleted_related('dp')
for item in result:
print(item.name,item.dp.title)
多用于 one2one 或 foreginkey
缺点:链表次数过多,反而会减低查询效率
3、prefecth_related
进行来两次查询,先查询一次,再查询和要查询数据有关的数据
result = User.objects.all().prefetch_related('dp')
for item in result:
print(item.name,item.dp.title)
多用于 mang2many
4、外键产生的原因
节约硬盘空间
当数据量比较大的时候,不要使用外键,允许数据出现冗余
最新文章
- ES6+ 现在就用系列(二):let 命令
- rem的使用
- 【C#】 格式化说明符 string.Format WriteLine
- ThreadLocal线程范围内的共享变量
- Linux workqueue工作原理 【转】
- python参考手册 Read
- swfupload上传
- oracle语句块调用
- IIS 部署ASP.Net, WebAPI, Restful API, PUT/DELETE 报405错解决办法, webapi method not allowed 405
- asp.net core高级应用:TagHelper+Form
- 云计算虚拟机技术-KVM安装
- win10无法删除文件夹(其中的文件或者文件夹已在另一个程序中打开)怎么办?
- JS 自己实现Map
- JAVA的各种O
- ftp服务器搭建(离线安装vsftpd),配置
- 理解Java反射
- MySQL缓存机制详解(一)
- 小程序采坑之setData
- package html to native application
- day2-python基础
热门文章
- 2018-8-10-win10-uwp-x_Bind-无法获得资源
- 安装 Sureface Hub 系统 Windows 10 team PPIPro 系统
- H3C DHCP特点
- Vue.js 学习笔记 第7章 组件详解
- 【js】 vue 2.5.1 源码学习(一) 大体结构 (自写版本,非源码)
- H3C IP地址与子网掩码
- remote api
- javaweb项目部署到tomcat之后java文件没有编译
- MyISAM与InnoDB的索引实现区别
- 【一起学源码-微服务】Nexflix Eureka 源码十三:Eureka源码解读完结撒花篇~!