浅谈MySQL中的六种日志


Posted in MySQL onMarch 23, 2022

(一)概述

MySQL中存在着以下几种日志:重写日志(redo log)、回滚日志(undo log)、二进制日志(bin log)、错误日志(error log)、慢查询日志(slow query log)、一般查询日志(general log)。

MySQL中的数据变化会体现在上面这些日志中,比如事务操作会体现在redo log、undo log以及bin log中,数据的增删改查会体现在 binlog 中。本章是对MySQL日志文件的概念及基本使用介绍,不涉及底层内容。针对开发人员而言,这几种日志中最有可能使用到的是慢查询日志。

(二)redo log

redo log是一种基于磁盘的数据结构,用来在MySQL宕机情况下将不完整的事务执行数据纠正,redo日志记录事务执行后的状态。

当事务开始后,redo log就开始产生,并且随着事务的执行不断写入redo log file中。redo log file中记录了xxx页做了xx修改的信息,我们都知道数据库的更新操作会在内存中先执行,最后刷入磁盘。

redo log就是为了恢复更新了内存但是由于宕机等原因没有刷入磁盘中的那部分数据。

(三)undo log

undo log主要用来回滚到某一个版本,是一种逻辑日志。undo log记录的是修改之前的数据,比如:当delete一条记录时,undolog中会记录一条对应的insert记录,从而保证能恢复到数据修改之前。在执行事务回滚的时候,就可以通过undo log中的记录内容并以此进行回滚。

undo log还可以提供多版本并发控制下的读取(MVCC)。

(四)bin log

MySQL的bin log日志是用来记录MySQL中增删改时的记录日志。简单来讲,就是当你的一条sql操作对数据库中的内容进行了更新,就会增加一条bin log日志。查询操作不会记录到bin log中。bin log最大的用处就是进行主从复制,以及数据库的恢复。

通过下面的命令可以查看是否开启binlog日志

show VARIABLES like '%log_bin%'

开启binlog的方式如下:

log-bin=mysql-bin
server-id=1
binlog_format=ROW

其中log-bin指定日志文件的名称,默认会放到数据库目录下,可通过以下命令查看

show VARIABLES like '%datadir%'

(五)error log

error log主要记录MySQL在启动、关闭或者运行过程中的错误信息,在MySQL的配置文件my.cnf中,可以通过log-error=/var/log/mysqld.log 执行mysql错误日志的位置。

通过MySQL的命令

show variables like "%log_error%";

也可以获取到错误日志的位置。

(六)slow query log

慢查询日志用来记录执行时间超过指定阈值的SQL语句,慢查询日志往往用于优化生产环境的SQL语句。可以通过以下语句查看慢查询日志是否开启以及日志的位置:

show variables like "%slow_query%";

慢查询日志的常用配置参数如下:

slow_query_log=1  #是否开启慢查询日志,0关闭,1开启
slow_query_log_file=/usr/local/mysql/mysql-8.0.20/data/slow-log.log  #慢查询日志地址(5.6及以上版本)
long_query_time=1 #慢查询日志阈值,指超过阈值时间的SQL会被记录
log_queries_not_using_indexes  #表示未走索引的SQL也会被记录

分析慢查询日志一般会用专门的日志分析工具。找出慢SQL后可以通过explain关键字进行SQL分析,找出慢的原因。

(七)general log

general log 记录了客户端连接信息以及执行的SQL语句信息,通过MySQL的命令

show variables like '%general_log%';

可以查看general log是否开启以及日志的位置。

浅谈MySQL中的六种日志

general log 可通过配置文件启动,配置参数如下:

general_log = on
general_log_file = /usr/local/mysql/mysql-8.0.20/data/hecs-78422.log

普通查询日志会记录增删改查的信息,因此一般是关闭的。

到此这篇关于浅谈MySQL中的六种日志的文章就介绍到这了,更多相关MySQL 日志内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
MySQL 查询速度慢的原因
May 25 MySQL
MySQL 全文检索的使用示例
Jun 07 MySQL
如何搭建 MySQL 高可用高性能集群
Jun 21 MySQL
MySQL系列之九 mysql查询缓存及索引
Jul 02 MySQL
MySQL配置主从服务器(一主多从)
Aug 07 MySQL
Prometheus 监控MySQL使用grafana展示
Aug 30 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
mysql 生成连续日期及变量赋值
Mar 20 MySQL
mysql的单列多值存储实例详解
Apr 05 MySQL
pt-archiver 主键自增
Apr 26 MySQL
MySql数据库 查询时间序列间隔
May 11 MySQL
MySQL中LAG()函数和LEAD()函数的使用
Aug 14 MySQL
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
实战 快速定位MySQL的慢SQL
关于MySQL临时表为什么可以重名的问题
将MySQL的表数据全量导入clichhouse库中
Mar 21 #MySQL
MySQL分区表管理命令汇总
Mar 21 #MySQL
Linux系统下MySQL配置主从分离的步骤
如何创建一个创建MySQL数据库中的datetime类型
Mar 21 #MySQL
You might like
PHP+XML 制作简单的留言本 图文教程
2009/11/02 PHP
ThinkPHP3.2.2的插件控制器功能简述
2014/07/09 PHP
javascript 函数使用说明
2010/04/07 Javascript
javascript进行四舍五入方法汇总
2014/12/16 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
原生js实现网页顶部自动下拉/收缩广告效果
2017/01/20 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
2017/02/28 Javascript
webpack4的迁移的使用方法
2018/05/25 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
layui前端框架之table表数据的刷新方法
2018/08/17 Javascript
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
Python3搜索及替换文件中文本的方法
2015/05/22 Python
Python聚类算法之凝聚层次聚类实例分析
2015/11/20 Python
python实现FTP服务器服务的方法
2017/04/11 Python
Python 基础教程之闭包的使用方法
2017/09/29 Python
python生成器用法实例详解
2019/11/22 Python
python 解压、复制、删除 文件的实例代码
2020/02/26 Python
python用什么编辑器进行项目开发
2020/06/17 Python
pycharm2020.2 配置使用的方法详解
2020/09/16 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
最耐用行李箱,一箱永流传:Briggs & Riley(全球终身保修)
2017/12/07 全球购物
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
单位未婚证明范本
2014/01/18 职场文书
办公室人员先进事迹
2014/01/27 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
老公出轨后的保证书
2015/05/08 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python