当前位置: 首页 > article >正文

Mysql中的三种log原理

技术主题

在涉及到存储数据的时候,经常用到关系性数据库,mysql是老生之谈了,今天博客的主题就是谈谈mysql的三种log,在日常工作中经常使用到的日志。

技术原理

undolog:是Innodb存储引擎生成的日志,用于事物的回滚和MVCC,保证了事务的原子性
redolog:是Innodb存储引擎生成的日志,用于崩溃后修复数据,保证了事务的持久性
binlog:是Server层的日志,用于备份数据,主从同步

技术原理-细讲一undo log

1)undo log用于回滚数据,在开始执行事务时,MYSQL会把更新前的数据都记录在undolog里面,事务提交前如果MYSQL崩溃,这时候我们可以进行回滚操作回到数据更新前的状态
undo log格式都有一个roll_pointer指针和一个trx_id事务id:
通过trx_id可以知道该记录是被哪个事务修改的
通过roll_pointer指针可以将这些undo log串成一个链表,链表称为版本链
2)在一个事务执行期间,MySQL会将所有的修改操作都写入到undolog中,并且在事务提交之前,这些操作不会被写入到磁盘中。这样可以提高系统的性能,因为如果对数据进行多次修改,只需要在最后一次提交时写入磁盘,而不是每次修改都写入磁盘。
3)当MySQL需要进行数据恢复时,它可以读取undolog中的记录并将数据恢复到先前的状态。因此,undolog是MySQL中非常重要的一个组件,它确保了数据的完整性和一致性。


http://www.kler.cn/a/13498.html

相关文章:

  • 句子改写神器-文案自动改写的免费软件
  • SLAM论文速递【SLAM—— PLD-SLAM:一种基于点线特征的室内动态场景RGB-D SLAM新方法—4.23(1)
  • 如何提高代码能力:程序员的成长之路(下)
  • C/C++每日一练(20230423)
  • 不得不说的结构型模式-桥接模式
  • Redis源码分析(基于Redis7,对比Redis6)
  • 精读《利用 GPT 解读 PDF》
  • Doris(7):数据导入(Load)之Routine Load
  • 宜搭应用与第三方系统数据互通怎么做?
  • 在win10系统中安装anaconda
  • C++并发数据结构设计
  • JumpConsistentHash,一种快速、简单、内存占用最少的一致性hash算法
  • 如何优化语音交友app开发的搜索和匹配算法
  • mySQL1(4/17)
  • Unity之ShaderGraph入门
  • 手把手教你通过 Docker 部署前后端分离项目(亲测可用)
  • linux_信号概念、事件、状态、常见信号解释、信号屏蔽字、未决信号集
  • leetcode507. 完美数
  • 2023年全国最新道路运输从业人员精选真题及答案58
  • 开放式耳机真的比封闭式强很多吗?推荐几款主流的开放式耳机