1.批量操作数据库
2.异步执行,降低接口耗时,可以使用线程池或消息队列。
3.使用缓存,把要查的数据,提前放好到缓存里面,需要时,直接查缓存,而避免去查数据库或者计算的过程。
4.提前初始化到缓存,避免一些复杂的计算的耗时。
5.池化思想,使用线程池,重复利用线程,避免不必要的耗时。
6.拒绝阻塞等待。
7.远程调用由串行改为并行。
8.锁粒度避免过粗,影响接口性能。
9.压缩传输内容。
10.数据太大,先用文件的方式暂存,之后再异步下载文件,慢慢保存到数据库。
11.SQL添加索引
12.SQL优化
- 12.1 selet具体字段
- 12.2 多用limit
- 12.3 用union all替换 union
- 12.4 优化group by
- 12.5 优化order by
- 12.6 小表驱动大表
- 12.7 字段类型使用合理
- 12.8 优化linit分页
- 12.9 exist& in的合理利用
- 12.10 join关联的表不宜过多
- 12.11 delete+in自查询不走索引
- 12.12 in元素不要过多
13.使用@Transactional
14.深分页问题
15.优化程序结构
16.海量数据考虑NoSQl
17.合理的线程池设计
18.机器问题(fullGC,线程打满,太多IO资源没关闭等等)