MySQL中的日志

导读:本篇文章讲解 MySQL中的日志,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

查询日志,binlog,redo log, undo log介绍。

目录

日志

MySQL中的4种日志

错误日志

查询日志和慢查询日志

二进制日志(binlog)

InnoDB 存储引擎的日志

重做日志(redo log)

回滚日志(undo log)


日志

MySQL中的4种日志

MySQL中常见的几种日志 – 知乎

在 MySQL 中,有 4 种不同的日志,分别是错误日志、二进制日志

(BINLOG 日志)、查询日志和慢查询日志,这些日志记录着数据库在不同方面的踪迹

错误日志

错误日志是 MySQL 中最重要的日志之一,它记录了当 mysqld 启动和停止时,以及服务器在运行过程中发生任何

严重错误时的相关信息。当数据库出现任何故障导致无法正常使用时,可以首先查看此日志。

查询日志和慢查询日志

查询日志中记录了客户端的所有操作语句,而二进制日志不包含查询数据的SQL语句。

慢查询日志记录了所有执行时间超过参数 long_query_time 设置值并且扫描记录数不小于

min_examined_row_limit 的所有的SQL语句的日志。long_query_time 默认为 10 秒,最小为 0, 精度可以到微

秒。

二进制日志(binlog)

二进制日志(BINLOG)记录了所有的 DDL(data define language数据定义语言)语句和 DML(data manage language数据操纵语言 insert 等)语句,但是不包括数据查询语句。此日志对于灾难时的数据恢复起着极其重要的作用,MySQL的主从复制, 就是通过该binlog实现的。

InnoDB 存储引擎的日志

undo log 和 redo log 其实都不是 MySQL 数据库层面的日志,而是 InnoDB 存储引擎的日志。二者的作用联系紧密,事务的隔离性由锁来实现,原子性、一致性、持久性通过数据库的 redo log 或 undo log 来完成。

redo log 又称为重做日志,用来保证事务的持久性,undo log 用来保证事务的原子性和 MVCC。

重做日志(redo log)

MySQL中的日志

 详细分析MySQL事务日志(redo log和undo log) – 骏马金龙 – 博客园

redo 记录的是物理上 值的修改 不像 binlog 是记录的是逻辑语句

和大多数关系型数据库一样,InnoDB 记录了对数据文件的物理更改,并保证总是日志先行,也就是所谓的 WAL,即在持久化数据文件前,保证之前的 redo 日志已经写到磁盘。由于 redo log 是顺序整块写入,所以性能要更好。

重做日志两部分组成:一是内存中的重做日志缓冲(redo log buffer),是易失的;二是重做日志文件(redo log file),是持久的。redo log 记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。

在一条语句进行执行的时候,InnoDB 引擎会把新记录写到 redo log 日志中,然后更新内存,更新完成后就算是语句执行完了,然后在空闲的时候或者是按照设定的更新策略将 redo log 中的内容更新到磁盘中。

实现持久性,避免事务提交之后每次都要刷新到磁盘。

回滚日志(undo log)

undo log 有两个作用:提供回滚和多版本并发控制下的读(MVCC),也即非锁定读

在数据修改的时候,不仅记录了redo,还记录了相对应的 undo,如果因为某些原因导致事务失败或回滚了,可以借助该 undo 进行回滚。

undo log 和 redo log 记录物理日志不一样,它是逻辑日志。可以认为当 delete 一条记录时,undo log 中会记录一条对应的 insert 记录,反之亦然,当 update 一条记录时,它记录一条对应相反的 update 记录。

有时候应用到行版本控制的时候,也是通过 undo log 来实现的:当读取的某一行被其他事务锁定时,它可以从 undo log 中分析出该行记录以前的数据是什么,从而提供该行版本信息,让用户实现非锁定一致性读取。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/92843.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!