加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 评测 > 正文

一篇全面的 MySQL 高性能优化实战总结!

发布时间:2019-09-03 17:06:33 所属栏目:评测 来源:惨绿少年
导读:副标题#e# 1 前言 在进行 MySQL 的优化之前必须要了解的就是 MySQL 的查询过程,很多的查询优化工作实际上就是遵循一些原则让 MySQL 的优化器能够按照预想的合理方式运行而已。 2 优化的哲学 2.1 优化可能带来的问题 优化不总是对一个单纯的环境进行,还很

不常用但好用的工具

  1. zabbix                  监控主机、系统、数据库(部署zabbix监控平台) 
  2. pt-query-digest         分析慢日志 
  3. mysqlslap               分析慢日志 
  4. sysbench                压力测试工具 
  5. mysql profiling         统计数据库整体状态工具 
  6. Performance Schema      mysql性能状态统计的数据 
  7. workbench               管理、备份、监控、分析、优化工具(比较费资源) 

关于zabbix参考:http://www.cnblogs.com/clsn/p/7885990.html

4.2 数据库层面问题解决思路

一般应急调优的思路:

针对突然的业务办理卡顿,无法进行正常的业务处理!需要立马解决的场景!

1、show processlist

2、explain select id ,name from stu where name=’clsn’; # ALL id name age sex

select id,name from stu where id=2-1 函数 结果集>30;

  show index from table;

3、通过执行计划判断,索引问题(有没有、合不合理)或者语句本身问题

4、show status like ‘%lock%’; # 查询锁状态

kill SESSION_ID; # 杀掉有问题的session

常规调优思路:

针对业务周期性的卡顿,例如在每天10-11点业务特别慢,但是还能够使用,过了这段时间就好了。

1、查看slowlog,分析slowlog,分析出查询慢的语句。

2、按照一定优先级,进行一个一个的排查所有慢语句。

3、分析top sql,进行explain调试,查看语句执行时间。

4、调整索引或语句本身。

 4.3 系统层面

cpu方面

  1. vmstat、sar top、htop、nmon、mpstat 

内存

  1. free 、ps -aux 

IO设备(磁盘、网络)

  1. iostat 、 ss  、 netstat 、 iptraf、iftop、lsof 

vmstat 命令说明:

Procs:r显示有多少进程正在等待CPU时间。b显示处于不可中断的休眠的进程数量。在等待I/O

Memory:swpd显示被交换到磁盘的数据块的数量。未被使用的数据块,用户缓冲数据块,用于操作系统的数据块的数量

Swap:操作系统每秒从磁盘上交换到内存和从内存交换到磁盘的数据块的数量。s1和s0最好是0

Io:每秒从设备中读入b1的写入到设备b0的数据块的数量。反映了磁盘I/O

System:显示了每秒发生中断的数量(in)和上下文交换(cs)的数量

Cpu:显示用于运行用户代码,系统代码,空闲,等待I/O的CPU时间

iostat命令说明

实例命令:iostat -dk 1 5

iostat -d -k -x 5 (查看设备使用率(%util)和响应时间(await))

tps:该设备每秒的传输次数。“一次传输”意思是“一次I/O请求”。多个逻辑请求可能会被合并为“一次I/O请求”。iops :硬件出厂的时候,厂家定义的一个每秒最大的IO次数

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读