加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql 底层引擎_mysql底层简述

发布时间:2022-11-19 13:07:53 所属栏目:MySql教程 来源:网络
导读: Mysql 日志系统
1)Redo日志
基于innoDB引擎
redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或者某几行的修改,用来恢复提交后的物理数据页。
redo log使用WAL(write ahe

Mysql 日志系统

1)Redo日志

基于innoDB引擎

redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或者某几行的修改,用来恢复提交后的物理数据页。

redo log使用WAL(write ahead logging)技术,每次提交事务后mysql内核,都会讲存储引擎中的log buffer中的日志写入内核中的OS buffer中,再从OS Buffer写到磁盘的redo log file中。

redo log有三种写入方式:

0)redo log每秒钟写入OS buffer中,再持久化到磁盘。

1)redo log在每次事务提交后,写入os buffer,在从os buffer写入磁盘。

2)redo log在每次事务提交后,写入os buffer,每秒钟从os buffer写入磁盘。

由 innodb_flush_log_at_trx_commit 参数控制。

innodb 的 redo log 有固定大小,write pos 记录当前写入的位置,check point指向当前擦除的位置

2)binlog

逻辑日志,server 端日志

通过和redo log合作,通过两段式提交和保证日志和数据的一致性。

redo log prepare-> 写binlog-> redo log commit

3)undo log

undo log是为了实现事务的原子性,在innoDB中还使用undo log实现MVCC

在操作任何数据之前,先将数据备份到一个地方(undo log),然后进行数据的修改。如果出现错误或者用户调用了ROLLBACK语句,系统可以使用undo log将数据恢复到事务开始前的状态。

undo log是逻辑日志,可以理解为生成增删改操作对应相反的一条语句。

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!