性能调优总结(持续更新)
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参数调优。
分库分表。
服务调用链路优化。
合理使用缓存,实现削峰泄洪。
相关文章
- 微软警告数千名云服务客户:数据库或被暴露
- 云数据库选型必读:如何梳理需求?
- 边缘计算:科技行业的下一个万亿美元机会
- 使用 Flink Hudi 构建流式数据湖
- 公共云能否成为机密?
- 全球十大农业大数据经典案例
- 边缘计算存储是物联网的下一个前沿
- mysql 系列:存储引擎
- 将实时数据流转化为业务价值的4个步骤
- C#使用Behavior实现编辑操作数据库的功能
- 三种可视化方法,手把手教你用R绘制地图网络图!
- C#(WPF)连接SQLite数据库,利用ViewModel显示数据
- 如何通过强大的数据库提高移动应用程序性能
- 利用BBED恢复数据文件头
- 数据解读:中国高校招生如何不平等?
- 边缘计算、边缘网络和边缘数据管理如何协同工作
- 阿里云数据库快速搭建疫情分析系统最佳实践
- 计算SGA各池的内存地址的边界
- MaxCompute实战探索案例|阿里云产品内容精选(二十八)
- mysql 系列:总体架构概述