MySQL查询日志

一、查询数据库版本相关信息
show variables like '%version%';


二、MySQL中常用的两个日志:通用查询日志和慢查询日志

1、通用查询日志
(1)查看通用日志查询是否开启
show variables like '%general%';

(2)查看日志输出的格式
show variables like '%log_output%';

(3)开启通用日志查询
set global general_log = on;

(4)关闭通用日志查询
set global general_log = off;

(5)设置通用日志输出为表方式(即mysql.general_log表)
set global log_output = 'TABLE';

(6)设置通用日志输出为文件方式
set global log_output = 'FILE';

(7)设置通用日志输出为表和文件方式
set global log_output = 'FILE,TABLE';

注意:上述命令只对当前生效,当MySQL重启后失效,如果要永久生效,需要配置 my.cnf 文件。
(8)配置文件 my.cnf 的配置如下:
general_log = 1  #为1表示开启通用日志查询,值为0表示关闭通用日志查询
log_output = FILE,TABLE #设置通用日志的输出格式为文件和表


2、慢查询日志
(1)查看慢查询日志是否开启
show variables like '%quer%';
slow_query_log的值为ON为开启慢查询日志,OFF则为关闭慢查询日志
slow_query_log_file的值是慢查询日志文件的位置
long_query_time指定了慢查询的阈值,即如果执行语句的时间超过该阈值则为慢查询语句,默认值为10秒。
log_queries_not_using_indexes如果值设置为ON,则会记录所有没有利用索引的查询;slow_query_log的值设置为ON才会生效。


(2)查看日志输出的格式
show variables like '%log_output%';

(3)慢查询日志输出到表中(即mysql.slow_log表)
set global log_output = 'TABLE';

(4)慢查询日志仅输出到文本中
set global log_output = 'FILE';

(5)慢查询日志同时输出到文本和表中
set global log_output = 'FILE,TABLE';  

(6)慢查询日志分析:Query_time:查询时间;Lock_time:锁表时间;Rows_examined:扫描行数

(7)在MySQL中有一个变量专门记录当前慢查询语句的个数:
show global status like '%slow%';

(8)如何判断慢查询日志是否生效
select sleep(12);
该条语句即是慢查询语句,之后,便可以在相应的日志输出文件或表中去查看是否有该条语句。

注意:上述命令只对当前生效,当MySQL重启后失效,如果要永久生效,需要配置 my.cnf 文件。
发布了25 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/lercent/article/details/105376211