数据库四大特性的实现原理
保证原子性和一致性
主要依赖于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来进行数据恢复。保证了事务的持久性