MySQL通用查询日志对于程序开发者来说是非常重要的一个东西,如果你想深入做DBA优化,MySQL通用查询日志也是必不可少的。
一、什么是MySQL通用查询日志?MySQL通用查询日志有什么用?
MySQL通用查询日志英文全称:General Query Log,也可叫MySQL一般查询日志或MySQL普通查询日志。
MySQL通用查询它主要是记录 mysqld 正在做的事情,如客户端的连接和断开、来自客户端每条 SQL语句 记录信息;如果你想准确知道客户端究竟传了什么内容给服务端,这个日志就非常管用了,当然了这货是非常影响性能的。
注意:
由于MySQL通用查询会记录服务器接收到的每一个查询或是命令,无论这些查询或是命令是否正确甚至是否包含语法错误,general log 都会将其记录下来 ,记录的格式为 {Time ,Id ,Command,Argument }。也正因为mysql服务器需要不断地记录日志,开启General log会产生不小的系统开销。 因此,Mysql默认是把General log关闭的。
二、MySQL通用查询日志 开启
mysql> set global general_log = on;
想要关闭就用 off。
三、查看 MySQL通用查询日志 是否开启成功?
mysql> show variables like "general_log%";
四、查看 MySQL普通查询日志的存放方式
mysql> show variables like 'log_output';
五、设置 MySQL普通查询日志的存放方式
mysql> set global log_output=file;
一般来说,存放方式有 table 和 file 两种,默认是file。
如果设置 log_output=table 的话,则日志结果会记录到名为 gengera_log 的表中,这表的默认引擎都是CSV。
如果设置 log_output=file 的话,就需要设置general log的日志文件路径,下一个步会讲到。
六、设置 MySQL普通查询日志的文件存放路径
mysql> set global general_log_file='E:/phpstudy_pro/Extensions/MySQL5.7.26/log/mysql-general.log';
七、MySQL一般查询日志在哪里?查看MySQL一般查询日志位置
mysql> show variables like "general_log%";
八、MySQL一般查询日志 使用教程
使用我就不多说了,无非是打开MySQL一般查询日志文件去详细分析,看看执行了哪些SQL语句?每条SQL语句它的性能如何?能否根据自己的业务情况再一步提升。可以手工用MySQL Explain(执行计划)来分析。
以下是我打开一般查询日志文件内容的部份截图:
总结:
其实,MySQL有好几种日志都是很重要的,MySQL普通查询日志只是其中之一,例如:还有MySQL二进制日志、MySQL慢查询日志、MySQL错误日志......等等。