栏目头部广告

MySQL性能瓶颈分析-大事务/执行计划

一、大事务查询

1.1 当前运行的所有事务

select * from information_schema.innodb_trx\G

MySQL性能瓶颈分析(图1)

MySQL性能瓶颈分析(图2)

1.2 锁等待的对应关系

select * from information_schema.innodb_lock_waits\G

MySQL性能瓶颈分析(图2)

1.3 当前出现的锁

select * from information_schema.innodb_locks\G

MySQL性能瓶颈分析(图3)

1.4 查看实时执行的SQL

show full processlist\G;                                                                    # 查询所有的正在执行的SQL
select * from information_schema.processlist where user='root' and info like '%insert%' \G; # 精准匹配某个用户,某个操作的SQL(如:select、insert、update、delete等)

二、执行计划分析

2.1 什么是执行计划?

使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的。分析你的查询语句或是表结构的性能瓶颈。

官网介绍:https://dev.mysql.com/doc/refman/5.5/en/explain-output.html

MySQL性能瓶颈分析(图5)

2.2 执行计划能干嘛?

(1)表的读取顺序-id
(2)数据读取操作的操作类型
(3)哪些索引可以使用
(4)哪些索引被实际使用
(5)表之间的引用
(6)每张表有多少行被优化器查询

2.3 执行计划怎么玩?

语法:

       Explain+SQL语句

案例:

mysql> select * from tbl_emp;
mysql> explain select * from tbl_emp;

MySQL性能瓶颈分析(图6)

执行计划包含的信息:

MySQL性能瓶颈分析(图7)

文章推荐MySQL Explain执行计划输出字段解读

三、MySQL常见性能问题

MySQL性能瓶颈分析(图9)

3.1 业务侧问题

(1)缺少主键
(2)缺少索引
(3)SQL写的烂

3. 2 MySQL宿主瓶颈

(1)CPU:CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候。
(2)IO:磁盘I/O瓶颈发生在装入数据远大于内存容量的时候。
服务器硬件的性能瓶颈:top,free,iostat和vmstat来查看系统的性能状态。

文章推荐:Linux服务器性能分析命令sar详解

作者:UStarGao
链接:https://www.starcto.com/mysql/99.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处

UCloud云平台推荐


UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`