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

相关推荐
键盘上的猫头鹰2 小时前
【MySQL 教程(八)】索引、事务、用户管理、导入导出与分页查询
数据库·python·mysql
Royzst2 小时前
数据库知识点
数据库
雪的季节3 小时前
企业级 Qt 全功能项目
开发语言·数据库·qt
宋浮檀s3 小时前
应急响应——Web漏洞:命令执行+SSRF+弱口令
运维·数据库·sql·网络安全·oracle·应急响应
yurenpai(27届找实习中)5 小时前
redis_点评(21.好友关注——关注、取关功能实现;共同关注功能实现)
数据库·redis·缓存
Rick19935 小时前
索引的排序和分组
数据库·mysql
爱莉希雅&&&5 小时前
zabbix快速搭建和使用
android·linux·数据库·zabbix·监控
不爱编程的小陈5 小时前
事务的进化:从MySQL单机事务到TiDB分布式事务的探究
分布式·mysql·tidb
JohnYan5 小时前
工作笔记 - PG分组极值
数据库·后端·postgresql
清溪5495 小时前
DataEase H2 JDBC-RCE(CVE-2025-32966)复现
数据库·安全