记录一次mysql服务器事件MySQL慢查询—开启慢查询
因为web服务器新添加的模块,我发现我线上的服务器负载忽高忽低,所以我启动慢查询检查一下
慢查询基础知识
开启慢查询日志,可以让MySQL记录下查询超过指定时间的语句,通过定位分析性能的瓶颈,才能更好的优化数据库系统的性能。
参数说明
slow_query_log 慢查询开启状态
slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
long_query_time 查询超过多少秒才记录
设置步骤
有两种方式 1:全局设置 2.直接在my.conf配置文件里面修改重启
我是用navicat为了方便,我直接就是全局设置方式
进入数据库
查看慢查询开启状态及路径
show variables like 'slow_query%';
slow_query_log OFF
slow_query_log_file /usr/local/mysql/var/data/slow.log
查看记录慢查询时间 (超过几秒记录下来)
show variables like 'long_query_time'
long_query_time 10.000000
开启慢查询
set global slow_query_log='ON';
设置超过1秒的sql记录下来 (注意:用navicat修改值后,需要关闭数据库重新连接才能看到修改的值)
set global long_query_time=1;
最后看一下状态正常就ok了
slow_query_log ON
slow_query_log_file /usr/local/mysql/var/data/slow.log
long_query_time 1.000000
然后去/usr/local/mysql/var/data/slow.log里面查看
你的业务sql超过1秒的都会记录到这里面,一条一条消灭它,比如加条件,加索引等等
直到这里文件里面不在产生记录
或者说不在产生你不可控的记录就ok了
相关文章