MySQL性能瓶颈分析-大事务/执行计划
一、大事务查询
1.1 当前运行的所有事务
select * from information_schema.innodb_trx\G
1.2 锁等待的对应关系
select * from information_schema.innodb_lock_waits\G
1.3 当前出现的锁
select * from information_schema.innodb_locks\G
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
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常见性能问题
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云平台推荐
随便看看
- 2022-07-13极简了解Ceph存储架构
- 2021-06-23 Linux性能异常经典案例分析之包量吞吐
- 2021-01-28Docker安装部署教程
- 2024-09-03UCloud UHost自建K8S集群如何使用基础云产品ULB负载均衡
- 2021-07-21MySQL Binlog日志解析方法