记录一次mysql服务器事件MySQL慢查询—开启慢查询

2023-06-01 00:00:00 查询 事件 开启

因为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了


相关文章