本文主要是介绍事务的 ACID特性及如何保证的,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
事务是数据库的一个非常重要的特性,包含ACID四大特性,下面详细介绍一下这四大特性及背后是如何保证的
原子性(Atomic) 事务里面的所有操作要么全部成功,要么全部失败。靠undo log来保证,每条sql执行时会在undo log里面记录一条相反的日志,如果要回滚就执行undo log里面的回滚sql来进行回滚
一致性(Consistence) 这里的一致性指的是数据库约束的一致性及业务数据的一致性。例如转账事务,一个人转出了500,那么另外一个人要收到500,保证最终的状态是一致的,一致性是原子性,隔离性,持久性三个特性共同来保证的。
隔离性(Isolation) 隔离性指的是不同事务之间相互的隔离范围。按照读未提交,读已提交,可重复读,串形化这四种隔离级别来控制,默认是可重复读。由数据库的锁机制及MVCC来保证
持久性(Durable). 持久性指的是事务一旦提交,那么就应该永久的状态,不会因数据库宕机等意外情况而丢失事务操作的数据。它是通过redo log来保证的。当事务操作在Buffer Pool内存中进行的时候,同时会写入redo log,如果数据库重启或者宕机了会执行 redo log 来保证事务操作不会丢失。
这篇关于事务的 ACID特性及如何保证的的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!