django ipython shell_django shell ipython 模型层优化(关联对象) 懒加载和预加载 +长链接...

懒加载

存在于外键和多对多关系

不检索关联对象的数据

调用关联对象会再次查询数据库

问题根源

查看django orm的数据加载,两次. 查询user,查询menu

第一次查询 用户表  第二次查询 app表

cmd:python manage.py shell #进入shell调试 或者ipython

from authorization.models import User

users=User.objects.all()

print(users.query) #打印sql语句 ,第一次查询user

user=users[0]

user_menu=user.menu.all()

print(user_menu.query) #第二次查询menu

预加载的方法

预加载单个关联对象--select_related

!!!预加载多个关联对象--prefetch_related

性能对比:测试时 预加载快了三倍左右

# 懒加载

def lazy_load():

for user in User.objects.all():

print(user.menu.all())

# 预加载

def pre_load():

for user in User.objects.prefetch_related('menu'):

print(user.menu.all())

长链接

尽少的链接次数,集中查询

因为创建和关闭链接的时间和单词查询的时间类似,一开一关大大浪费性能

避免负优化:

使用CONN_MAX_AGE配置限制DB连接寿命

CONN_MAX_AGE默认值是0

每个DB连接的寿命保持到该次请求结束

不建议开发模式下使用CONN_MAX_AGE

部署线程数 一定要小于 数据库最大连接数

django-debug-toolbar

https://www.cnblogs.com/liwenzhou/p/9245507.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534246.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

zabbix4.0添加mysql报警_Zabbix4.0系统告警“Zabbix server is not running”

第一步: 查看系统日志,进一步确认原因1 cat /var/log/zabbix/zabbix_server.log问题出现在数据库。第二步 数据库确认1 mysql -u root -p #root用户登陆数据库如果登录不成功,就看一下登录密码是否正确以及zabbix用户是否有权限登录数据库。1…

影响索引的mysql函数_mysql索引对排序的影响实例分析

本文实例讲述了mysql索引对排序的影响。分享给大家供大家参考,具体如下:索引不仅能提高查询速度,还可以添加排序速度,如果order by 后面的语句用到了索引,那么将会提高排序的速度。测试1、创建测试表:t15表…

php如何对 mysql 中text类型拆分存入一个数组_PHP递归实现无限级分类,可选返回字符串和数组...

正 文:在一些复杂的系统中,要求对信息栏目进行无限级的分类,以增强系统的灵活性。那么PHP是如何实现无限级分类的呢?我们在本文中使用递归算法并结合mysql数据表实现无限级分类。递归,简单的说就是一段程序代码的重复调…

python 开发框架 ant_Golang/python语言开发的分布式游戏服务器框架 mqant

软件介绍mqantmqant 是一款基于 Golang 语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性的游戏服务器框架,也希望 mqant 未来能够做即时通讯和物联网方…

java w3c xml_org.w3c.dom(java dom)解析XML文档

首先来了解点Java DOM 的 API:1.解析器工厂类:DocumentBuilderFactory创建的方法:DocumentBuilderFactory dbf DocumentBuilderFactory.newInstance();2.解析器:DocumentBuilder创建方法:通过解析器工厂类来获得 DocumentBuilder…

java中小数点位数_Java中限制小数位数问题

在Java中限制小数位数的方法不止一种,下面我们以限制两位小数为例来说明几种限制小数位数的方法,其他位数可以以此类推方式一:四舍五入double f 111231.5585;BigDecimal b new BigDecimal(f);double f1 b.setScale(2,…

orange pi java_[中文]Orange Pi家族各大成员一览表

全部复制来自官网,只修改了错别字和优化了排版。Orange Pi Zero香橙派Zero是一款开源的单板电脑,新一代的arm开发板,它可以运行Android4.4、Ubuntu、Debian等操作系统。香橙派Zero使用全志H2系统级芯片,同时拥有256MB/512MB DDR3 内存(256MB为…

java 微服务源码_基于Java的微服务架构源码案例Abixen

微服务越来越受欢迎,每个月都有更多的库包和解决方案来支持微服务的开发测试,很多Java开发人员虽然听说过微服务,但是真正采用还是有犹豫的:“我知道,微服务是非常棒的,微服务器更容易维护和进一步开发&…

rocketmq java例子_SpringBoot和RocketMQ的简单实例

1,引用jar包build.gradle文件添加jar包引用compile group: org.apache.rocketmq, name: rocketmq-spring-boot-starter, version: 2.1.12,配置文件application.properties 配置文件spring.application.nameapp-dempserver.port8081###rocketmq###rocketm…

mysql migrations_Code First Migrations更新数据库结构(数据迁移)

背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们的旧数据库中包含一些测试数据时,当持久化更新后,…

java 机器码 虚拟机_Java虚拟机:源码到机器码

无论什么语言写的代码,其到最后都是通过机器码运行的,无一例外。那么对于 Java 语言来说,其从源代码到机器码,这中间到底发生了什么呢?这就是今天我们要聊的。如下图所示,编译器可以分为:前端编…

docker 远程连接 文件看不到_开发提升十倍生产力: IDEA 远程一键部署 Spring Boot 到 Docker...

一、开发前准备二、新建项目《Java 2019 超神之路》《Dubbo 实现原理与源码解析 —— 精品合集》《Spring 实现原理与源码解析 —— 精品合集》《MyBatis 实现原理与源码解析 —— 精品合集》《Spring MVC 实现原理与源码解析 —— 精品合集》《Spring Boot 实现原理与源码解析…

java多台_Java 多态

Java中多态的特性,在学习中就是很难懂,比较抽象的概念。学的时候就犯糊涂,但日后会发现,基础在日常工作的理解中占有重要的角色。下面,我将用一个代码实例,回忆和巩固多态的概念和存在的意义。理解多态&…

快准牌电脑发软件_做自媒体必备技能,视频剪辑软件排名(精品篇)

作者:老马引流定位:专业专注引流推广0X00 前言毫不客气的说,视频正日益成为社交媒体和营销的重要组成部分,有越来越多的人参与到视频剪辑当中来,而其中最为关键的就是视频剪辑软件。而市面上的视频剪辑软件当然也是五花…

ad电阻原理图_【雕爷学编程】Arduino动手做(2)---光敏电阻模块

【Arduino】108种传感器模块系列实验(02)实验二:光敏电阻传感器模块我手里这块是三针版的,挺秀气吧光敏电阻是用硫化隔或硒化隔等半导体材料制成的特殊电阻器,其工作原理是基于内光电效应。光照愈强,阻值就…

java从url下载文件_Java从URL下载文件

在这篇文章中将学习如何从java下载URL中的文件。使用java.net.URL openStream()方法从java程序中的URL下载文件。也可以使用Java NIO Channels或Java IO InputStream从URL打开流中读取数据,然后将它保存到文件中。下面是从指定URL下载的简单Java程序。它演示了如何在…

怎么判断一个字符串的最长回文子串是否在头尾_LeetCode 第 131 号问题:分割回文串...

题目来源于 LeetCode 上第 131 号问题:分割回文串。题目难度为 Medium,目前通过率为 45.8% 。题目描述给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例:输入题目解析首先&#xff0…

java的地位_Java地位无可动摇的12个原因

如今,面对曾经在程序员中被各种新技术掩盖直至堙灭的技术值得怀念。犹如COBOL这当年被老程序员们尊为神器的语言如今也基本没有价值。而Java作为现代程序员的中坚力量在这点上会不会成为下一个COBOL?有关JAVA的技术卖出多少本书已经是一个很久远的记忆了…

hystrix threadpool coresize_Hystrix断路器 - 求知若渴的蜗牛

Hystrix介绍在微服务场景中,通常会有很多层的服务调用。如果一个底层服务出现问题,故障会被向上传播给用户。我们需要一种机制,当底层服务不可用时,可以阻断故障的传播。这就是断路器的作用。他是系统服务稳定性的最后一重保障。在…

ionic保存到mysql_ionic sqlite 存取数据封装(兼容真机与webkit浏览器)

不管是真机还是H5,都有提供sqlite数据库进行存储数据。那么我们只要封装好函数就能随意调用了。如果只是存储简单的键值对形式的话,ionic官网也提供了一个兼容网页的storage,https://ionicframework.com/docs/storage,但只能key/v…