Mysql的事务日志

Mysql的事务具有四个特性:原子性、一致性、隔离性、持久性。那么事务的四种特性分别是靠什么机制实现的呢?

  • 事务的隔离性由锁机制来保证

  • 事务的原子性、一致性、持久性则由redo log和Undo log来保证。

    • redo log是重做日志,提供再写入操作,恢复提交事务修改的页操纵,用来保证事务的持久性。

    • undo log是回滚日志,回滚记录到某个特定的版本,保证事务的原子性和一致性。

  • redo log:是存储引擎(innodb)生成的日志,记录的是物理级别上的页修改操作,比如页号XXX、偏移量yyy写入了'zzz'数据。主要是为了保证数据的可靠性。

  • undo log:是存储引擎(innodb)生成的日志,记录的是逻辑操作日志。比如对某一行进行了insert语句操作,那么undo log就会记录与之相反的delete操作。主要用于事务的回滚 (undo log记录的是每个修改操作的逆操作)和一致性非锁定读(undo log回滚记录到某个特定的版本---MVCC,多版本并发控制)。

1. redo log

InnoDB引擎是以 为基本单位来管理存储空间的。在真正访问页面之前,需要把磁盘上的页读取到内存的buffer pool 中之后才能访问数据。所有的更新都必须先更新buffer pool中的数据,buffer pool中被更新过的页被称之为脏页(dirty page),然后buffer pool中的脏页会以一定的频率被刷到磁盘中(check point机制),通过缓冲池(buffer pool)来优化cpu和磁盘之间的速度鸿沟,保证整体的性能不会下降太快。

1.1 为什么需要redo日志?

相关推荐
yunlaodacom8 分钟前
腾讯云国际版代理商:COS标准、低频、归档和深度归档怎么选?存储成本与数据取回区别
数据库·云计算·腾讯云
Nturmoils8 分钟前
SQL Server数据库迁移:V9R4C019 如何接住存量 T-SQL 批处理
数据库
NineData14 分钟前
NineData智能数据管理平台新功能发布|2026年8月
数据库·人工智能·oracle·中间件·agent·数据库开发·ninedata
Elastic 中国社区官方博客25 分钟前
Elasticsearch 向量数据库:几分钟内完成部署,以经济高效的方式扩展至数千亿规模
大数据·运维·数据库·elasticsearch·搜索引擎·ai·全文检索
1314lay_100726 分钟前
C#调用Sql Server存储过程,有返回值的
数据库·sqlserver·c#
DBA_G2 小时前
GBase 8a数据库表空间多路径功能特点综述
数据库·oracle
TDengine (老段)2 小时前
TDgpt 使用 — 部署、SQL、算法
大数据·数据库·sql·算法·时序数据库·tdengine·涛思数据
晴天¥2 小时前
Oracle 19c数据库内存管理优化(内存管理方式调整及内存扩容)
数据库·oracle·oracle数据库集群调优
CQU_JIAKE2 小时前
9.10【A】
数据库
乐观的Terry3 小时前
Redis生产环境redis-conf配置教程
数据库·redis