(一)概述

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是否开启以及日志的位置。

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

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

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

简单聊聊MySQL中的六种日志相关推荐

  1. MySQL 中的重做日志,回滚日志以及二进制日志的简单总结

    转载自 MySQL 中的重做日志,回滚日志以及二进制日志的简单总结 MySQL中有六种日志文件,分别是:重做日志(redo log).回滚日志(undo log).二进制日志(binlog).错误日志 ...

  2. MySQL中常见的日志文件

    日志文件记录了影响MySQL数据库的各种类型活动.MySQL中常见的日志文件有: 错误日志(error log) 二进制日志(binlog) 慢查询日志(slow query log) 查询日志(lo ...

  3. MySQL中的通用查询日志(General Query Log)

    MySQL中的通用查询日志(General Query Log) 1. 以什么形式来记录? log_output系统变量来决定的,可选值 TABLE, FILE, 或者 NONE,默认值是FILE,可 ...

  4. MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的简单总结...

    MySQL中有六种日志文件, 分别是:重做日志(redo log).回滚日志(undo log).二进制日志(binlog).错误日志(errorlog).慢查询日志(slow query log). ...

  5. MySQL中的重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)的简单总结

    前言 1. ''最近公司大佬让我优化sql的时候,说可以通过控制where条件,尽可能的少的较少数据库的开支,少生成一些无用的binlog.由此引出binlog这个概念,大家一起学习一下 关于Binl ...

  6. jsp页面判断输入编号已存在mysql中_面试官让我聊聊Mysql基础架构之日志文件与数据文件...

    上一篇文章讲述了Mysql的基本框架,和sql执行的流程,这篇文章首先分析下每个流程的具体细节,然后介绍日志文件和数据文件以下面语句作为例子来分析流程中每一步的具体细节: select * from ...

  7. mysql 表空间收缩_【135期】谈谈MySQL中的重做日志,回滚日志,以及二进制日志的区别及各自作用...

    点击上方"Java面试题精选",关注公众号 面试刷图,查缺补漏 >>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅 阶段汇总集 ...

  8. mysql重做日志与binlog日志区别_【135期】谈谈MySQL中的重做日志,回滚日志,以及二进制日志的区别及各自作用...

    MySQL中有六种日志文件,分别是:重做日志(redo log).回滚日志(undo log).二进制日志(binlog).错误日志(errorlog).慢查询日志(slow query log).一 ...

  9. 聊聊MySQL中的锁

    原文地址:http://www.linzichen.cn/article/1571531799593484288 在程序开发中,当多个线程并发操作共享数据时,我们需要保证在任何时刻最多只能有一个线程在 ...

最新文章

  1. SecutrCRTt 连接VirtualBox 中的Ubuntu -端口转发
  2. php server script name,$_SERVER[SCRIPT_NAME]变量可值注入恶意代码
  3. Linux Perl 升级
  4. linux 字符转int,如何在Linux内核中将char []字符串转换为int?
  5. 从自监督到全监督!Google 提出新损失函数SupCon,准确率提升2%!
  6. 设计模式学习笔记1——类与类之间的关系
  7. Hive_Hive的数据模型_分区表
  8. 基于MeanShift的Camshift算法原理详解(opencv实现,有源码)
  9. 2021年,小傅哥の年终总结
  10. 从教女儿下棋谈启蒙教育
  11. 求1-100的和的几种方法
  12. python数据挖掘入门与实践-第一章-用最简单OneR算法对Iris植物分类
  13. 关闭微信朋友圈和公众号的广告
  14. 以开发之名|线上家装新美学——梦想之家,由你来定
  15. 艾宾浩斯记忆遗忘曲线-背单词
  16. 实验五:常见WEB漏洞挖掘与利用
  17. java如何将字符数组转换为int_将字符串数组转换为int数组
  18. python数控机器人_科研一角|Python语言在人工智能加工中心机器人方面的应用
  19. oracle11g 新特性
  20. 计算机毕业论文java毕业设计成品源码网站springMVC图书管理系统|借阅[包运行成功]

热门文章

  1. vue2 项目中引入iconfont
  2. aria2搭建(CentOS 7)
  3. Alternate Realities大赛作品引发的思考(二)——如何完全按照自己的思路制作一个toon shader
  4. 说一下HashMap的实现原理
  5. 可以买到 Linux 电脑的 10 个地方
  6. rust建造一键升级_rust一键升级指令 | 手游网游页游攻略大全
  7. 计算机科学与探索支付宝,中国第三方网上支付发展研究-以支付宝为例(毕业论文).doc...
  8. Docker 镜像管理,显示本地镜像,查找镜像,删除镜像,镜像拉取,查看镜像的具体信息,镜像的导入和导出,将配置后的镜像commit成自己的镜像,docker history,等
  9. 要点初见:从旅行青蛙开始的OpenCV3模板匹配功能探索
  10. U盘制作启动盘后无法使用,显示无法格式化等信息