Mysql优化之慢查询优化

Posted gaojingyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql优化之慢查询优化相关的知识,希望对你有一定的参考价值。

1、什么是慢查询?

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

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

2、慢查询怎么启动?

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

技术图片

 配置好上述内容,重启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

技术图片

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

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

技术图片

 

(4) 文件内容解读

技术图片

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

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

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

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

第五行 具体的SQL语句

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

 

以上是关于Mysql优化之慢查询优化的主要内容,如果未能解决你的问题,请参考以下文章

逆水行舟 —— SQL优化之慢查询和explain以及性能分析

MySQL优化之慢日志分析(Anemometer+Pt-query-digest)

MYSQL性能优化分享(分库分表)

MYSQL性能优化分享(分库分表)

浅谈Redis之慢查询日志

MySql性能优化查询优化