Mysql优化之慢查询优化

时间:2022-05-13 04:59:25

1、什么是慢查询?

慢查询顾名思义,就是查询慢的sql日志,是指Mysql记录所有执行时间超过long_query_time参数设定的时间阈值SQL语句的日志。该日志能为SQL语句的优化带来很好的帮助,能够帮助你更快速的定位执行慢的SQL语句。

默认情况下,慢查询是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。

2、慢查询怎么启动?

找到my.ini(linux找到my.cnf)配置文件,增加慢查询配置

Mysql优化之慢查询优化

 配置好上述内容,重启MySql加载配置。

通过下面语句查询是否配置生效:

show VARIABLES like ‘%slow_query_log%‘
show VARIABLES like ‘%slow_query_log_file%‘
show VARIABLES like ‘%long_query_time%‘
show VARIABLES like ‘%log_queries_not_using_indexes%‘
show VARIABLES like ‘log_output‘

3、慢查询场景解读

(1) 先设置SQL执行时间伐值为1s

set global long_query_time=1

Mysql优化之慢查询优化

(2) 随便查询一张表,查询时间大于1s即可

(3) 去查看配置好的日志输出路径就会发现

Mysql优化之慢查询优化

 

(4) 文件内容解读

Mysql优化之慢查询优化

第一行 Time:记录的是一个语句的执行时间

第二行 分别是用户名、用户的ip信息、线程id

第三行 Query_time:执行语句花费的时间, Lock_time:执行获得锁的时间,Rows_sent:获得的结果行数,Rows_examined:扫描的数据行数

第四行 SQL语句执行的具体时间

第五行 具体的SQL语句

PS:慢查询的日志记录非常多,要从里面找寻一条查询慢的日志并不是很容易的事情,需要一些工具辅助才能够快速定位需要优化的语句,可以使用Mysqldumpslow来分析