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来分析