日志系统是我们在进行测试或者遇到什么问题时候必要的分析工具。
mysql中也存在着日志系统:
SQL慢查询日志:
用于记录mysql中响应时间超过一定值的sql语句;
检查是否开启慢查询:
show varibales like 'slow_query_log';
开启/关闭慢查询日志:
#0为关,1为开
set global slow_query_log=1/0;
在这里设置开关慢查询只是临时设置的,重启mysql服务后又会恢复到默认,如果想永久开启需要修改my,ini的配置文件。
查看和修改时间限制
#查看
show variables like 'long_query_time';
#修改
set long_query_time=时间;
修改了时间并不会马上生效,需要重新连接mysql服务器。
查看/修改日志存储位置
#查看存储位置
show variables like 'show_query_log_file';
#修改存储的位置
set global slow_query_log_file = 路径
#修改存储方式为表
#1
set global log_output ='table';
#2.在mysql数据库下有一个slow_log的表,用表存储会把日志信息存在该表中
set global slow_query_log_file = slow_log;
全局日志:
profiles:
查看全局的sql花费的时间,不够精确。
查看是否开启全局日志:
show variables like 'profiling';
开启/关闭全局日志:
#开为1,关为0
set profiling =1;
修改后会立刻生效,他会记录你的一切sql语句分析。
查看语句分析:
show profiles;
精细查看(sql诊断):
在profile记录中会有一个query_id,可以通过id来去分析更精确的信息。
#all可以换成你要查询的字段
show profile all for 查询的query_id;
#一般情况要查询的字段
show profile cpu,block io for 查询的query_id
具体字段含义请参考:https://blog.csdn.net/ty_hf/article/details/54895026
全局查询日志:
记录开启之后的全部sql语句,测试的时候开,上线千万不要开
查看开启状态:
show variables like general_log;
开启/关闭
#关为0,开为1
set global general_log =1;
查看存储位置:
show variables like 'general_log_file';
修改存储位置:
#修改到其他位置
set global general_log_file ='地址';
#修改为表存储,表为mysql下的general.log
set global log_output='table';