数据库调优 项目调优

时间:2022-07-26
本文章向大家介绍数据库调优 项目调优,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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