【Django】性能优化-普通版

性能优化:

思路

通常无论是什么编程语言或者是什么框架,瓶颈通常都是数据库相关的操作;

大部分的查询慢的问题接口都是频繁查库、全盘扫描、多层for循环嵌套、高频查redis、序列化时多级外键;

多用O(1)查找复杂度的数据

合理使用dict、set等查询复杂度是O1的数据类型初始化数据,避免使用for循环套for循环查找数据效率低下的情况,使用 x in [1,2,3...]效率低,改成set

数据库避免使用查询效率低的字段

数据库使用JSON、二进制文件会导致查询效率变低

主键使用MD5

这个会慢,因为自增主键是使用二分法查找的,而md5就会全盘扫描

Redis

尽量一次请求只查1次redis,Redis查询太快会缓存击穿;

定位性能低下的代码

具体定位:使用如下代码,每个可疑方法上都有编号,找到后再将编号加.多一位

python 复制代码
time_start=datetime.now()
print(f"性能优化 编号1.2.3", datetime.now()-time_start)
相关推荐
橘子夏与单车少年k16 分钟前
疏锦行Python打卡 DAY 27 函数专题2:装饰器
开发语言·python
Mikhail_G18 分钟前
数据分析入门初解
大数据·运维·开发语言·python·数据分析
CodeDevMaster18 分钟前
Python数据可视化:Seaborn入门与实践
python·数据可视化
zsffuture32 分钟前
LangGraph--带记忆和工具的聊天机器人
windows·python·机器人
jz_ddk1 小时前
[python] 使用python设计滤波器
开发语言·python·学习·算法
墨城之左1 小时前
OpenSSL 无法验证 DevSidecar 的自签名证书
python
异常君1 小时前
Dubbo 高可用性核心机制详解与实战(下)
性能优化·dubbo·设计
layneyao1 小时前
Python+TensorFlow:30分钟快速入门AI开发
人工智能·python·tensorflow
import_random1 小时前
[python]random模块(介绍+使用)
python
fydw_7151 小时前
Jinja2 模板在 Python 和 LLM 提示词编辑器中的应用
开发语言·python·编辑器