数据库四大特性的实现原理

保证原子性和一致性

主要依赖于unlog,undo log保证了事务的原子性和一致性。

回滚日志,用于记录数据被修改前的信息,作用包含两个:提供回滚和 MVCC(多版本并发控制)。undo log和redoloq记录物理日志不一样,它是逻辑日志。

可以认为当delete一条记录时,undolog中会记录一条对应的insert记录,反之亦然

当update一条记录时,它记录一条对应相反的update记录。当执行roback时,就可以从undo log中的逻辑记录读取到相应的内容并进行回滚。

保证隔离性

通过设置数据库隔离级别来处理(未提交读、已提交读、重复度、序列化)

通过版本控制MVCC和排他锁保证数据隔离性

全称 Multi-Version Concurrency Control,多版本并发控制。指维护一个数据的多个版本,使得读写操作没有冲突MVCC的具体实现,主要依赖于数据库记录中的隐式字段、undo log日志、readView

保证持久性

通过redo log保证数据持久性

当缓冲池中的数据已一定频率刷新到磁盘时,突然宕机了,这时需要借助redo log来进行数据恢复。保证了事务的持久性

相关推荐
星马梦缘32 分钟前
数据库作战记录 实验7、8
数据库·sql·oracle
安逸sgr1 小时前
Hermes Agent + Obsidian 打造第二大脑(六):分层记忆系统的设计逻辑——L0/L1/L2/L3 四层记忆详解
数据库·agent·知识库·hermes·hermesagent
苍煜1 小时前
一篇讲懂分库分表:概念、spirngboot实战
数据库·oracle
梦想画家2 小时前
PostgreSQL 物化视图实战:从数据固化到智能刷新的全链路指南
数据库·postgresql·物化视图
weoptions2 小时前
简单sql注入中如何通过简单语句判断注入类型&注入方法
数据库·sql
小短腿的代码世界2 小时前
Qt数据库编程深度解析:从SQL基础到ORM架构设计
数据库·sql·qt
Database_Cool_2 小时前
在 RDS PostgreSQL 中实现 RaBitQ 量化
数据库·阿里云·ai·postgresql
【心态好不摆烂】2 小时前
MySQL操作库
数据库·mysql
Javatutouhouduan2 小时前
Java小白如何快速玩转Redis?
java·数据库·redis·分布式锁·java面试·后端开发·java程序员
Lyyaoo.4 小时前
Redisson
数据库·缓存