前言:在平常的工作和学习中,总会有Sql查询过慢所导致的问题,这时我们需要通过慢查询,通过sqldumpslow去筛选出最需要优化的sql ,再用explain查看执行计划,根据执行计划的结果结合具体业务正确地创建合适的索引,给出合理的优化建议。
查询慢查询相关参数
show variables like '%quer%';
slow_query_log(是否记录慢查询)
slow_query_log_file(慢日志文件路径)
long_query_time(超过设定的时间才会记日志)
开启慢查询日志
(Linux) 在/etc/my.cnf 配置文件的[mysqld]选项下增加
slow_query_log=TRUE
slow_query_log_file=/usr/local/mysql/slow_query_log.txt
long_query_time=3
(Windows)在my.ini配置文件的[mysqld]选项下增加
slow_query_log=TRUE
slow_query_log_file=c:/slow_query_log.txt
long_query_time=3
是否将没有使用索引的sql也记录下来
log_queries_not_using_indexes(默认关闭,0-关闭,1-开启)
慢查询日志分析工具
mysqldumpslow 【选项】 【参数】 -s(sort)排序方式 c(count)查询的次数 t(time)查询所用的时间 l(lock)锁定的时间 r(row)返回记录的条数 at平均查询时间 al平均锁定时间 ar平均返回记录条数 -t(top)返回前多少 -g匹配一个正则表达式,大小写不敏感 例如: musqldumpslow -s c -t 10 /./*_slow.log 返回访问次数前十的sql语句