9.慢查询日志

1.MySQL的日志类型
日志用于记录数据库的运行情况,以及用户对数据库执行的各类操作。当数据库发生故障时,可以根据日志分析和解决问题,从而对数据库进行恢复。

日志 描述
重做日志 重做日志是一种物理格式的日志,记录的是物理数据页面的修改信息,顺序写入redo log file
回滚日志 回滚日志是一种逻辑格式的日志,在执行undo的时候,仅仅是将数据从逻辑上恢复至事务之前的状态,而不是从物理页面上操作实现的,这一点是不同于redo log的
二进制日志 二进制日志是一种逻辑格式的日志,以二进制文件的形式记录了数据库中的操作,但不记录查询语句
错误日志 错误日志记录着mysqld的启动和停止以及服务器在运行过程中发生错误的相关信息
慢查询日志 慢查询日志记录执行时间过长和没有使用索引的查询语句
一般查询日志 记录了服务器接收到的每一个查询或命令,无论这些查询或命令是否正确甚至是否包含语法错误,general log都会将其记录下来
中继日志 中继日志类似于二进制;可用于复制架构,使从服务器和主服务器的数据保持一致

2.慢查询日志
慢查询日志用于记录MySQL数据库中响应时间超过指定阈值的语句。慢查询日志通常也被称为慢日志,因为它不仅仅只针对select语句,像insert、update、delete等语句,只要响应时间超过所设定阈值都会记录在慢查询日志中。

参数 描述
slow_query_log 是否开启慢查询日志,1表示开启,0表示关闭
slow_query_log_file 慢查询日志存储路径,可选。注意:MySQL5.6之前的版本,参数名为log-slow-queries
long_query_time 阈值,当SQL语句的响应时间超过该阈值就会被记录到日志中
log_queries_not_using_indexes 未使用索引的查询也被记录到慢查询日志中,可选
log_output 日志存储方式,默认为FILE。log_output=‘FILE’表示将日志存入文件。log_output=‘TABLE’表示将日志存入数据库。log_output=‘FILE,TABLE’表示将日志同时存入文件和数据库

3.配置

#查看是否开启慢查询日志
show variables like 'slow%';

#临时开启慢查询日志
set slow_query_log='ON';
set long_query_time=1;

#慢查询日志文件所在位置
show variables like '%datadir%';

猜你喜欢

转载自blog.csdn.net/Jgx1214/article/details/107496108