MySQL性能常见原因分析 
东东堂
议程 
什么是性能 
MySQL性能如何测量 
性能问题一般处理流程 
常见MySQL性能问题原因
什么是性能 
响应时间 完成单个事务数需要的时间,包括真正的CPU运行时间和等待时间 
吞吐量 服务器在单位时间内所能处理的事务或查询数
什么是性能 
性能问题常见发现方式: 
 用户反应 
完成业务时间变长,导至用户无法忍受 
 主动监控 
cpu,内存,磁盘出现性能瓶劲
MySQL性能如何测量 
MySQL的状态变量 
 事务数 
 QPS 
常用的监控方式 
innodtop,zabbix,mysqladmin
MySQL性能如何测量 
MySQL的状态变量 
 事务数 
 QPS 
常用的监控方式 
innotop,zabbix,mysqladmin
MySQL性能如何测量
MySQL性能如何测量 
主机资源利用情况 
1. CPU利用率 
2. 内存或是换页 
3.存储响应时间 
4.网络响应时间和吞吐量
MySQL性能如何测量 
CPU: 
vmstat, sar –u,top 
内存: 
free,top 
 存储: 
iostat, sar –d 
网络: 
sar –n DEV,第三方网络工具
性能问题一般处理流程 
接到反映或是主动发现 
收集当前资源的使用情况 
识别和分析
性能问题一般处理流程 
针对可能的原因提出解决方案 
测试方案 
验证解决方案
性能问题一般处理流程 
生产环境变更 
监控变更效果 
反复迭代,直至问题解决
常见MySQL性能问题原因 
主机资源瓶劲 
1. cpu核数,cpu利用率,负载,WIO的百分比; 
2.是否与服务器上其他进程产生争用; 
3.内存不足,产生换页; 
4.存储支持多少IOPS和MBPS; 
5.操作系统配置参数; 
6.网络是否有丢包;
常见MySQL性能问题原因 
服务器和操作系统配置: 
1.存储的CACHE配置; 
2.调度器配置; 
3.内存参数; 
4.文件句柄数; 
5.文件系统的类型和挂载参数.
常见MySQL性能问题原因 
MySQL配置: 
1. mysql的版本选择; 
2. 事务刷新事务日志配置; 
3.事务日志的配置; 
4.连接数配置; 
5.各种BUFFER的配置; 
6. 各种日志的配置; 
7.INNODB的线程并发和缓存设置 ; 
8.数据存放布局.
常见MySQL性能问题原因 
应用程序设计因素(1): 
1.使用连接池技术; 
2.索引设计; 
3.SQL语句的复杂性; 
4.排序和分组; 
5.分页带来的开锁;
常见MySQL性能问题原因 
应用程序设计因素(2): 
8.锁问题; 
9.连接的顺序; 
10.表,列类型的选择.
Q&A QQ:327356330 MySQL DBA群:148695939

Mysql performance analyze