MySQL三种日志

一、undo log(回滚日志)

1.作用:

(1)保证了事物的原子性

(2)通过read view和undo log实现mvcc多版本并发控制

2.在事务提交前,记录更新前的数据到undo log里,回滚的时候读取undo log来进行回滚

3.undo log格式有一个rtx_id(上一次事物修改的id)和roll_ptr(指向需要回滚的版本)

二、redo log

1.作用:保证事务的持久性

2.WAL(write-ahead logging)先写日志技术:MySQL的写操作不是立即写到磁盘上的,而是先写到buffer pool里的缓存页生成脏页,再将脏页产生的变化写入到redo log buffer中,事务提交的时候将redo log buffer中内容循环写到磁盘中的redo log file中。后续innoDB引擎在适当的时候由后台线程将buffer pool中的脏页刷新到磁盘中。如果由于意外脏页数据没有持久化,可以根据redo log恢复数据到最新状态。

3.redo log的磁盘操作是顺序写,比随机写更高效。

三、binlog(在server层而不是存储引擎层)

1.作用:用于备份(记录全量日志,不小心整个数据库的数据被删除了)、主从复制

参考:图解MySQL

相关推荐
舰长1152 分钟前
ubuntu24安装mysql遇到的坑----解决Mysql报错缺少libaio.so.1
linux·mysql·ubuntu
it码喽10 分钟前
Redis存储经纬度信息
数据库
星光一影13 分钟前
快递比价寄件系统技术解析:基于PHP+Vue+小程序的高效聚合配送解决方案
vue.js·mysql·小程序·php
小马哥编程37 分钟前
【软件架构】数据库系统与缓存设计:五种缓存一致性方案
数据库·缓存
DemonAvenger1 小时前
Redis持久化策略对比:RDB与AOF的最佳实践与场景选择
数据库·redis·性能优化
新手小白*1 小时前
Redis Sentinel哨兵集群
数据库·redis·sentinel
一 乐1 小时前
商城推荐系统|基于SprinBoot+vue的商城推荐系统(源码+数据库+文档)
前端·数据库·vue.js·spring boot·后端·商城推荐系统
羑悻的小杀马特2 小时前
从零搭建群晖私有影音库:NasTool自动化追剧全流程拆解与远程访问协议优化实践
运维·数据库·自动化
TDengine (老段)4 小时前
杨凌美畅用 TDengine 时序数据库,支撑 500 条产线 2 年历史数据追溯
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
葛小白17 小时前
C#数据类型:string简单使用
服务器·数据库·c#