数据库调优 项目调优
Springboot项目调优
配置文件调优
更改Tomcat的相关配置
- 设置Tomcat的最大连接数
- 设置请求头最大内存
- 设置post请求的最大内存
- 设置Tomcat最大线程数
- 设置Tomcat的最小工作线程数
JVM调优
- 设置项目启动的参数 在vm option处添加配置内容
-XX:MetaspaceSize=128m#(元空间默认大小)
-XX:MaxMetaspaceSize=128m #(元空间最大大小)
-Xms1024m #(堆最大大小)
-Xmx1024m #(堆默认大小)
-Xmn256m #(新生代大小)
-Xss256k #(棧最大深度大小)
-XX:SurvivorRatio=8 #(新生代分区比例 8:2)
-XX:+UseConcMarkSweepGC #(指定使用的垃圾收集器,这里使用CMS收集器)
-XX:+PrintGCDetails #(打印详细的GC日志)
- java包运行的时候 可以在后面补上相关的初始化命令后面
java -jar -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC newframe-1.0.0.jar
jvm的监控工具在jdk对应的bin目录下
项目包扫描优化
一般项目默认采用的是@SpringBootApplication注解来自动获取应用的配置信息 ,对于项目比较大可能会遇到的问题有
- 会导致项目的启动时间边长
- 会加载一些多余的实例bean
- 增加cpu的负担
优化方式
- 移除@SpringBootApplication 和 @ComponentScan 两个注解来禁用组件自动扫描
- 使用@Configuration和@EnableAutoConfiguration代替
- 在需要使用到的实例上进行注入设置
数据库优化
- 创建索引,但是也不能盲目创建
- 避免在索引上进行计算(加减乘除)
- 采用预编译的方式查询
- 调整where后面过滤条件的顺序,过滤多的最好放在前面
- 尽量将多条sql压缩成一条sql
- 多表联查的时候多使用别名
- 创建视图
- 设置字段的长度
- 根据情况选择使用in和exists(如果是大小表,左小用exists,左大用in)
- 更新的时候尽量只修改需要改的的几个字段而不是全部
CREAT TABLE user (
id long(64) NOT NULL,
name VARCHAR(20) NOT NULL,
password VARVHAR(32) NOT NULL,
phone VARVHAR(13) NOT NULL,
sex INT (2) NOT NLL,
PRIMARY KEY (id)
)ENGINE=InonDB DEFAULT CHARSET=utf8