事务
我们知道,事务具有四大特性——ACID
A atomicity 指的是原子性
C consistency 指的是一致性
I isolation 指的是隔离性
D durability 指的是持久性
四大特性的实现原理
原子性
原子性在这指的是整个事务操作,要么同时成功要么同时失败。让它变成一个整体。
同时成功这好办,难办的是同时失败。
想要实现同时失败,就需要恢复之前的数据,如何恢复旧版本数据呢? undolog回滚日志
undolog回滚日志是实现事务原子性的关键。它保存了数据修改之前的历史数据。当我们的事务中有insert操作时,他会反向的记录一个delete,反之亦然。
隔离性
隔离性指的是当由多个活动事务的时候,每一个事务应该是相互独立的整体。也就是说它们互不干扰。
隔离性实现是基于MVCC多版本数据并发控制实现的。
持久性
持久性指的是,当我的事务提交,事务里面涉及修改的数据都会得到持久性。而不会因为某些特殊原因导致我的修改数据没有更新到磁盘里面去。
持久性的实现是由redolog重做日志完成的。
当我们对数据做增删改的时候,会经历这样的过程:
修改缓冲池里面的数据
写入缓冲池的redolog
提交事务
同步更新磁盘中的redolog
等待后台线程刷新脏数据,完成持久化。
一致性
一致性指的是发生增删改操作时,数据库从一个一致性的状态进入另一个一致性状态。
其实上面三个特性就是为了实现一致性。
举例说:
我的钱包里有1000块钱,买了一包烟花掉100块钱。
那么此时的一致性应该是这样:
-
<

文章详细阐述了数据库事务的四大特性——原子性、一致性、隔离性和持久性,并重点解析了redolog和undolog在确保事务特性中的作用。redolog保证了事务的持久性,而undolog则确保原子性。MVCC(多版本并发控制)机制在读写冲突中提供了解决方案,提高数据库并发性能。
最低0.47元/天 解锁文章
4550

被折叠的 条评论
为什么被折叠?



