zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

性能调优总结(持续更新)

2023-03-07 09:11:51 时间

减少不必要的请求,避免同级别同业务的数据多次请求后端。(控制相对原子,避免接口高度耦合,返回不必要的数据)

接口设计要控制业务原子性,避免单接口返回过大的数据结构,减小数据传输量。(例如大批量数据不分页返回)

非必要强一致或者复杂业务逻辑,可考虑异步处理。

前端资源或者静态资源需要做好CDN加速(就近访问)。

对于需要经过网络传输的静态资源尽可能做压缩处理,非必要,尽可能控制本地访问,规避网络传输资源。

避免过度设计。(简单业务搞复杂架构,导致成本上升,维保困难)

工具类控制继承,工具类当中的方法要根据类名做好归类,防止不同实体的工具方法出现在同一工具类。

涉及到数据处理的复杂逻辑,优先考虑是否可以使用算法降低复杂度。

数据库写动作合理使用batch能力。

数据库表字段索引。(group by、order by、where 后的字段需要加索引)

内存合理分配:合理分配数据库内存,如PGA与SGA设置;不对大数据提供orderby操作,避免PGA被占满。

大任务处理,可以合理考虑多线程处理,线程池处理。

如用MQ(消息中间件)来解耦系统之间的依赖关系,减少阻塞(削峰填谷同样适用)。

jvm配置优化,内存、GC。

连接池选型、参数调优。

线程池使用,参数调优。

缓存机制:通过数据的缓存来减少磁盘读写的压力,缩小存储与CPU的效率差(减小数据库压力)。

数据库连接池优化,当前主要是Druid和hikariCP。

慢查询优化。

tomcat线程池参数优化。

ES参数调优。

分库分表。

服务调用链路优化。

合理使用缓存,实现削峰泄洪。