MySQL性能优化及问题排查

本文介绍了MySQL性能优化的关键点,包括慢查询检查、连接数管理、Key_buffer_size命中率分析、临时表处理、Open Table状况、线程使用、查询缓存效率、排序操作、文件打开数监控、表锁情况、表扫描评估以及QPS(每秒查询量)的计算。通过监控和调整相关参数,可以有效提升MySQL服务器的性能。
摘要由CSDN通过智能技术生成

常用命令

1.show variables查看系统变量
show variables 查看的是mysql系统变量,是MySQL系统运行时的参数,如字符集设置、版本信息、默认参数等,除非手动修改,否则运行时一般不会改变;

2.show status
是MySQL服务器运行统计,如打开的表数量、命令计数、qcache计数等。
是系统状态 是动态

操作方式

1.慢查询

通过show variables like '%slow%';
log_show_queries看是否设置开启慢查询
slow_launch_time查看设置慢查询的时间
show global status like '%slow%';查看慢查询的条数
show global variables like 'slow_query_log_file';查看面查询文件存放位置

2.连接数

show variables like 'max_connections';查看设置的最大连接数
show global status like 'Max_used_connections';查看服务器响应的最大连接数
Max_used_connections / max_connections * 100% ≈ 85%
最大连接数占上限连接数的85%左右,如果发现比例在10%以下,MySQL服务器连接数上限设置的过高了。

3.Key_buffer_size 命中率

key_buffer_size是对MyISAM表性能影响最大的一个参数,下面一台以MyISAM为主要存储引擎服务器的配置:
mysql> show variables like 'key_buffer_size';
value分配的内存
show global status like 'key_read%';
两个参数

Key_read_requests内存共有多少索引读取请求
Key_reads 请求在内存中没有找到直接从硬盘读取索引
计算未命中缓存的概率:
key_cache_miss_rate = Key_reads / Key_read_requests * 100%
key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘),如果key_cache_miss_rate在 0.01%以下的话,key_buffer_size分配的过多,可以适当减少。
MySQL服务器还提供了key_blocks_*参数:
show global status like ‘key_blocks_u%’;
两个参数

  • 1.Key_blocks_unused 表示未使用的缓存簇(blocks)数
  • 2.Key_blocks_used 表示曾经用到的最大的blocks数
    比较理想的设置:Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 80%
4.临时表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值