数据库调优 项目调优
时间: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
- wordpress如何屏蔽wp-json(禁用REST API)
- 贝叶斯系列——贝叶斯与其他统计流派的区别和联系
- bootstrap tab切换如何让鼠标移动自动切换内容
- css自动换行如何设置?url太长会撑开页面
- Histogram of Oriented Gridients(HOG) 方向梯度直方图
- 动态规划系列之最长递增子序列问题解答
- Git SSH Key 生成步骤
- 如何将wordpress所有文章批量改为已发布状态
- dedecms提取某栏目及子栏目名称到首页怎么弄
- Bootstrap速学教程之简要介绍
- Ubuntu 安装 JDK8 的两种方式
- git命令-切换分支
- 如何让dedecms文章点击量增加一定的数值
- dedecms自增标签[field:global.autoindex/]的运用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PYES异常: TypeError: 'NoneType' object is not callable
- 第十八篇 zabbix创建自定义报警媒介
- 原创|如果懂了HashMap这两点,面试就没问题了
- RTSP协议网络摄像头互联网直播开源流媒体平台
- RTSP协议网页无插件播放,匿名登录不显示设备资源如何解决?
- 设计模式~代理模式
- Linux工具入门:make工具与Makefile文件
- PF_RING的多种负载均衡方法
- 【拓展】686- 如何在 Web 上大规模生成 UUID
- Linux进程管理与性能监控
- 重学数据结构(一、线性表)
- Jmeter系列(49)- 详解 HTTP Cookie 管理器
- java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener问题解决
- ELK + Filebeat + Kafka 分布式日志管理平台搭建
- 一切皆是文件:UNIX,Linux 操作系統的設計哲學