网站首页 > 精选教程 正文
1.根据硬件配置系统参数
wait_timeout 非交互连接的最大存活时间, 10-30min
max_connections 全局最大连接数 默认100 根据情况调整
back_log 达到max_connections后, 还能继续接受的连接请求数, linux不超过1000, 根据情况调整
thread_concurrency MySQL处理线程数 cpu核心数*2
innodb_buffer_pool_size innodb引擎的数据页大小, 一般是总内存的50%
innodb_flush_log_at_try_commit 将logbuffer写入日志并flush进硬盘的时间点, 一般0(每秒)或者2(提交事务时)
innodb_log_buffer_size log缓存大小 1~8m
innodb_addtional_mem_pool_size 数据字典等数据结构的内存池大小 24~48m
innodb_thread_concurrency cpu核心数*2
2.hikariCP参数配置
maxLifetime 连接生命时长, 比mysql的wait_timeout短1分钟左右
maximumPoolSize 连接池最大连接数: cpu核心数*2 + 硬盘数, 默认10 一个连接池一般来讲连接数在10-20个, 根据部署的应用程序数量可以推测出mysql的max_connections值
readonly 是否是只读数据源, 做读写分离时有用, 保证slave数据源的安全
connectionTimeout 等待连接池分配连接的最大时长 30s, 如果超过这个时间还没有分配到连接, commit会抛异常
其他参数一般用默认即可
3.max_connections
show status like 'max%connections'
max_used_connections / max_connections 过去的最大连接数 / 设置的最大连接数, 应该在10%~80%, 可据此调整max_connections
4.wait_timeout
show processlist;
sleep 查看当前连接状态, 如果sleep太多, 可以调小wait_timeout值
5.key_buffer_size优化
索引页大小, 基础设置256~512m
1>show global status like 'key_read%'
key_reads / key_read_request < 1 / 100
使用硬盘里的索引 / 所有索引请求 如果比例过大, 说明索引缓存不够, 大量索引无法加入缓存, 只能从硬盘直接读, 这是要适当调大key_buffer_size值
2>show global status like 'key_blocks_u%'
key_blocks_unused 未使用过的索引页内存簇
key_blocks_used 使用过的索引页内存簇
如果所有索引页内存簇都被使用过, 说明索引页内存使用较多, 可以适当调大key_buffer_size
6.query_cache查询缓存
query_cache_size 查询缓存大小 48~256m
query_cache_type 是否用查询缓存 1
query_cache_limit 单次查询缓存最大值 1~4m
query_cache_min_res_unit 缓存空间最小单位 4k
show global status like 'qcache%'
1> qcache_free_blocks / qcache_total_blocks < 20% 过大说明查询的一般都是小数据量查询, 可以适当减少query_cache_min_res_unit
2>qcache_free_memory / query_cache_size < 20% 过大说明大量查询缓存未用, 可以适当减少query_cache_size
3>qcache_lowmem_prunes > 50说明内存碎片太多或者query_cache_size不够
4>qcache_hits / qcache_hits_qcache_inserts 命中率低说明读少写多
7.table_cache 表缓存 256m
show global status like 'Open%tables'
open_table / table_cache 正在缓存中的表 过大说明表缓存被利用的很充分, 可以适当增加
opened_table / table_cache 缓存过的表
8.max_heap_table_size , tmp_table_size 内存临时表大小限制, 由最小值决定
show global status like 'create_tmp%'
created_tmp_disk_tables / created_tmp_tables < 25% 过大说明由大量临时表被创建在硬盘中, 这是要适当增加max_heap_table_size和tmp_table_size
9.thread_cache_size 缓存的线程数
show global status like 'Thread%'
Thread_created 过大表示创建线程数太频繁, 可以增大thread_cache_size已缓存更多的线程
10.sort_buffer_size , record_rnd_buffer_size 排序缓存 , 随机读缓存
show global status like 'sort%'
sort_merge_passes 太大说明在硬盘中创建了很多临时文件, 可以增大sort_buffer_size 和 record_rnd_buffer_size
11.慢查询
1>show variables like '%slow%'
slow_launch_time 超过多长时间的查询视为慢查询 一般 2~5s
2>show global status like '%slow%'
slow_queries 慢查询次数
3>show variables like '%log_query_file%'
slow_query_log 是否开启了慢查询日志
slow_query_log_file 慢查询日志文件
12.表扫描
show global status like 'handler_read%'
show global status like 'com_select'
Handler_read_rnd_next / com_select > 4000 太大说明表扫描太多, 索引没建好
13.表锁使用
show global status like 'table_locks%'
Table_locks_immediate / Table_locks_waited > 5000 立即释放的锁 / 需要等待的锁, 太大的话最好用Innodb, 用行级锁替代立即释放的表锁
猜你喜欢
- 2024-10-29 Java中最简单的连接Oracle数据库和Mysql数据库的方式
- 2024-10-29 Java | MySQL 分布函数、前后函数你认识吗?
- 2024-10-29 Javaweb知识 day02 mysql数据库 javaweb程序设计任务教程黑马程序员电子版
- 2024-10-29 Jenkins Pipeline 连接 MySQL 数据库
- 2024-10-29 银四将近,Java程序员临时抱佛脚也要啃下的硬骨头——MySQL
- 2024-10-29 Java代码中,如何监控Mysql的binlog?
- 2024-10-29 Java环境+Mysql+Tomcat部署JavaWeb项目到云服务器(十分详细)
- 2024-10-29 mysql-connector-java与MySQL 8.X版本建立连接
- 2024-10-29 java连接mysql数据库达成数据查询详细教程
- 2024-10-29 Java代码操作MySQL java操作mysql语法
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)