【Django】性能优化-普通版
性能优化:
思路
通常无论是什么编程语言或者是什么框架,瓶颈通常都是数据库相关的操作;
大部分的查询慢的问题接口都是频繁查库、全盘扫描、多层for循环嵌套、高频查redis、序列化时多级外键;
多用O(1)查找复杂度的数据
合理使用dict、set等查询复杂度是O1的数据类型初始化数据,避免使用for循环套for循环查找数据效率低下的情况,使用 x in [1,2,3...]
效率低,改成set
数据库避免使用查询效率低的字段
数据库使用JSON、二进制文件会导致查询效率变低
主键使用MD5
这个会慢,因为自增主键是使用二分法查找的,而md5就会全盘扫描
Redis
尽量一次请求只查1次redis,Redis查询太快会缓存击穿;
定位性能低下的代码
具体定位:使用如下代码,每个可疑方法上都有编号,找到后再将编号加.多一位
time_start=datetime.now()
print(f”性能优化 编号1.2.3”, datetime.now()-time_start)