网站API优化
来源:互联网 发布:java解析器是什么 编辑:程序博客网 时间:2024/06/06 00:05
问题:
django rest framework的使用大大提高了开发效率,产品开发周期明显缩短。在业务发展初期,数据库记录非常小的情况下,比如几万条及以下,查询速速尚且满足需要。
但是随着业务规模的可扩大,当数据库记录达到10w以上,加上join等的影响, 查询速度越来越慢。django rest_framework已经捉襟见肘。
优化要点:
涉及数据库查询的操作,尽量批量(id__in=ids);
不用外键,不用join;关于join包括:
a) models中使用property定义查询,属于join;使用缓存;
a) 对于记录数少的表,初始化时从数据库读出后,放入map,提高效率;
b) 对于经常使用的表,表记录又不是很多的,可以考虑用cache缓存下,每次的请求,先到cache中查,如果找到,直接返回,如果没有找到,再查询数据库,并将结果放入cache中;返回结果时,只返回指定长度数据,也就是使用分片[:];
Apple.objects.filter(**filters)[0:30], 只返回30条记录不需要的字段,不要查询;
example
app_detail = AppDetail.objects.filter(app_id=app_id)
修改为
app_detail = AppDetail.objects.filter(app_id=app_id).values('flag_id')
只查询flag_id,不用的字段不查询,这样就可以节省几十毫秒;
建立索引;
为经常用到的查询子句中的条件建立索引,例如create_time等
工具:
connections可以用于查看django执行的sql语句及消耗的时间
from django.db import connectionsc = connections['database_name']print c.queries
阅读全文
0 0
- 网站API优化
- 网站优化
- 网站优化
- 网站优化
- 网站优化
- 优化网站
- 网站优化
- 网站优化
- 网站优化
- 网站优化
- 网站优化
- 网站优化
- 网站优化
- 网站优化
- 网站优化
- 网站优化
- 网站优化
- 网站优化
- HTML5 发布测试版本,通过网页在线安装ipa和apkH
- Problem E
- 百度之度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?
- 修改PostgreSQL中pg_hba.conf
- ContentType与http状态码
- 网站API优化
- Understanding HBase and BigTable
- 织梦DedeCMS调用二级子栏目或者多级栏目解决方法
- 搜索引擎免费被百度收录
- Android Fragment使用详解和源码分析
- python opencv入门(学习笔记no.1)-图片的读入读出
- 【简记】Computer Networking——network layer(part one)
- zookeeper-3.4.10源码解读-FastLeaderElection消息收发模型
- 百度之一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选