mysql日志文件有哪些作用

92次阅读
没有评论

共计 1412 个字符,预计需要花费 4 分钟才能阅读完成。

自动写代码机器人,免费开通

了解 mysql 日志文件有哪些作用?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是丸趣 TV 小编给大家带来的参考内容,让我们一起来看看吧!

MySQL 日志文件可分为:重做日志(redo log)、回滚日志(undo log)、二进制日志(binlog)、错误日志(errorlog)、慢查询日志(slow query log)、一般查询日志(general log)、中继日志(relay log)。

1、重做日志(redo log)

重做日志是一种物理格式的日志,记录的是物理数据页面的修改的信息,其 redo log 是顺序写入 redo log file 的物理文件中去的。

重做日志可以确保事务的持久性。防止在发生故障的时间点,尚有脏页未写入磁盘,在重启 mysql 服务的时候,根据 redo log 进行重做,从而达到事务的持久性这一特性。

2、回滚日志(undo log)

回滚日志是一种逻辑格式的日志,在执行 undo 的时候,仅仅是将数据从逻辑上恢复至事务之前的状态,而不是从物理页面上操作实现的,这一点是不同于 redo log 的。

回滚日志保存了事务发生之前的数据的一个版本,可以用于回滚,同时可以提供多版本并发控制下的读(MVCC),也即非锁定读

3、二进制日志(binlog)

二进制日志是一种逻辑格式的日志,以二进制文件的形式记录了数据库中的操作,但不记录查询语句。可以简单认为就是执行过的事务中的 sql 语句;但又不完全是 sql 语句这么简单,而是包括了执行的 sql 语句(增删改)反向的信息,也就意味着 delete 对应着 delete 本身和其反向的 insert;update 对应着 update 执行前后的版本的信息;insert 对应着 delete 和 insert 本身的信息。

二进制日志可用于复制,在主从复制中,从库利用主库上的 binlog 进行重播,实现主从同步;用于数据库的基于时间点的还原。

4、错误日志(errorlog)

错误日志记录着 mysqld 启动和停止, 以及服务器在运行过程中发生的错误的相关信息。在默认情况下,系统记录错误日志的功能是关闭的,错误信息被输出到标准错误输出。

5、慢查询日志(slow query log)

慢日志记录执行时间过长和没有使用索引的查询语句,报错 select、update、delete 以及 insert 语句,慢日志只会记录执行成功的语句。

6、一般查询日志(general log)

记录了服务器接收到的每一个查询或是命令,无论这些查询或是命令是否正确甚至是否包含语法错误,general log 都会将其记录下来,记录的格式为 {Time,Id,Command,Argument}。也正因为 mysql 服务器需要不断地记录日志,开启 General log 会产生不小的系统开销。因此,Mysql 默认是把 General log 关闭的。

7、中继日志(relay log)

中继日志类似二进制;可用于复制架构中,从服务器用于从主服务器中二进制文件取的事件。

说明:

其中重做日志和回滚日志与事务操作息息相关,二进制日志也与事务操作有一定的关系,这三种日志,对理解 MySQL 中的事务操作有着重要的意义。

感谢各位的阅读!看完上述内容,你们对 mysql 日志文件有哪些作用大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注丸趣 TV 行业资讯频道。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计1412字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)