首页 /  技术专区  /  Mysql 宽屏模式 >

Mysql如何定位慢查询 ?

方案一:开源工具

调试工具:Arthas 

运维工具:Prometheus 、Skywalking

Image.png

Image.png

方案二:MySQL自带慢日志

慢查询日志记录了所有执行时间超过指定参数(long_query_time,单位:秒,默认10秒)的所有SQL语句的日志如果要开启慢查询日志,需要在MySQL的配置文件(/etc/my.cnf)中配置如下信息:

Image.png

配置完毕之后,通过以下指令重新启动MySQL服务器进行测试,查看慢日志文件中记录的信息 /var/lib/mysql/localhost-slow.log。

Image.png


一个SQL语句执行很慢, 如何分析

可以采用EXPLAIN 或者 DESC命令获取 MySQL 如何执行 SELECT 语句的信息


语法:

Image.png

Image.png


possible_key  当前sql可能会使用到的索引

key 当前sql实际命中的索引 

key_len 索引占用的大小 

Extra 额外的优化建议

Image.png


type 这条sql的连接的类型,性能由好到差为NULL、system、const、eq_ref、ref、range、 index、all 

system:查询系统中的表 

const:根据主键查询 

eq_ref:主键索引查询或唯一索引查询 

ref:索引查询 

range:范围查询 

index:索引树扫描 

all:全盘扫描


MYSQL支持的存储引擎有哪些, 有什么区别 ?

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。

Image.png




头像
0/200
图片验证码