1.定位慢查询
1、showstatus命令
命令使用方式:show[session|global]statuslike 'slow_queries'
如果你不写[session|global]默认是session会话,指取出当前窗口的执行,如果你想看所有(从mysql启动到现在,则应该global)
执行showstatus显示的数据库变量大概有291个。变量对应说明:
showstatus常用的命令:
showstatuslike‘uptime’;
showstautslike‘com_select’
showstautslike‘com_insert’
...类推updatedelete
showstatuslike‘connections’;
//显示慢查询次数
showstatuslike‘slow_queries’;
2、mysql默认的慢查询
默认情况下,mysql认为10秒才是一个慢查询.
showvariableslike‘long_query_time’;//可以显示当前慢查询时间
setlong_query_time=1;//可以修改慢查询时间
3、定位慢查询
show variables like '%slow%'; #查看MySQL慢查询是否开启
set global slow_query_log=ON; #开启MySQL慢查询功能
show variables like "long_query_time"; #查看MySQL慢查询时间设置,默认10秒
set global long_query_time=5; #修改为记录5秒内的查询
select sleep(6); #测试MySQL慢查询
show variables like "%slow%"; #查看MySQL慢查询日志路径
show global status like '%slow%'; #查看MySQL慢查询状态
或者
vi /etc/f #编辑,在[mysqld]段添加以下代码
slow-query-log = on #开启MySQL慢查询功能
slow_query_log_file =/var/run/mysqld/mysqld-slow.log#设置MySQL慢查询日志路径
long_query_time = 5 #修改为记录5秒内的查询,默认不设置此参数为记录10秒内的查询
log-queries-not-using-indexes = on#记录未使用索引的查询
:wq! #保存退出
service mysqld restart #重启MySQL服务
4、安装使用MySQL慢查询分析工具mysqlsla