收藏起来,史上最全的 MySQL 高性能优化实战总结!

本文总结了MySQL性能优化的应急与常规调优思路,包括show processlist、explain等工具的使用,以及查看slowlog、调整索引和SQL。还涉及CPU、内存、IO的监控工具如vmstat、iostat,以及系统层面问题的解决方案,强调了硬件选择、RAID配置、内存和CPU选择的重要性。最后提到了数据库参数和SQL优化、存储引擎层的优化,以及高可用和高性能架构的方向。
摘要由CSDN通过智能技术生成

一般应急调优的思路:

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

  • 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 点业务特别慢,但是还能够使用,过了这段时间就好了。《MySQL 调优/优化的 101 个建议!》了解下。

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

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

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

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

3. 系统层面

cpu方面:

vmstat、sar top、htop、nmon、mpstat

内存:

free 、ps -aux 、

IO 设备(磁盘、网络):

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 次数,"一次传输"请求的大小是未知的。

  • kB_read/s:每秒从设备(drive expressed)读取的数据量;

  • KB_wrtn/s:每秒向设备(drive expr

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值