MySQL 慢查询日志的开启与配置
简介
MySQL慢查询日志是排查问题SQL语句,以及检查当前MySQL性能的一个重要功能。
查看是否开启慢查询功能:
mysql>showvariableslike'slow_query%'; +---------------------+------------------------------------+ |Variable_name|Value| +---------------------+------------------------------------+ |slow_query_log|OFF| |slow_query_log_file|/var/lib/mysql/instance-1-slow.log| +---------------------+------------------------------------+ 2rowsinset(0.01sec)
mysql>showvariableslike'long_query_time'; +-----------------+-----------+ |Variable_name|Value| +-----------------+-----------+ |long_query_time|10.000000| +-----------------+-----------+ 1rowinset(0.00sec)
说明:
slow_query_log慢查询开启状态
slow_query_log_file慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
long_query_time查询超过多少秒才记录
配置
临时配置
默认没有开启慢查询日志记录,通过命令临时开启:
mysql>setglobalslow_query_log='ON'; QueryOK,0rowsaffected(0.00sec) mysql>setglobalslow_query_log_file='/var/lib/mysql/instance-1-slow.log'; QueryOK,0rowsaffected(0.00sec) mysql>setgloballong_query_time=2; QueryOK,0rowsaffected(0.00sec)
永久配置
修改配置文件达到永久配置状态:
/etc/mysql/conf.d/mysql.cnf [mysqld] slow_query_log=ON slow_query_log_file=/var/lib/mysql/instance-1-slow.log long_query_time=2
配置好后,重新启动MySQL即可。
测试
通过运行下面的命令,达到问题SQL语句的执行:
mysql>selectsleep(2); +----------+ |sleep(2)| +----------+ |0| +----------+ 1rowinset(2.00sec)
然后查看慢查询日志内容:
$cat/var/lib/mysql/instance-1-slow.log /usr/sbin/mysqld,Version:8.0.13(MySQLCommunityServer-GPL).startedwith: Tcpport:3306Unixsocket:/var/run/mysqld/mysqld.sock TimeIdCommandArgument /usr/sbin/mysqld,Version:8.0.13(MySQLCommunityServer-GPL).startedwith: Tcpport:3306Unixsocket:/var/run/mysqld/mysqld.sock TimeIdCommandArgument #Time:2018-12-18T05:55:15.941477Z #User@Host:root[root]@localhost[]Id:53 #Query_time:2.000479Lock_time:0.000000Rows_sent:1Rows_examined:0 SETtimestamp=1545112515; selectsleep(2);
以上就是MySQL慢查询日志的开启与配置的详细内容,更多关于MySQL慢查询日志的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。