# 什么是事务
事务是针对数据库的一组操作,它可以由一条或者多条SQL语句组成,同一个事务的操作具备同步的特点,如果其中有一条语句不能执行的话,那么所有的语句都不会执行,也就是说,事务中的语句要么都执行,要么都不执行。
# 事务的特性
事务需要满足ACID四个特性 :
1. A(atomicity) 原子性
一个事务的执行被视为一个不可分割的最小单元。事务里面的操作,要么全部成功执行,要么全部失败回滚,不可以只执行其中的一部分。
2. C(consistency) 一致性
一个事务的执行不应该破坏数据库的完整性约束。假如转账过程中系统崩溃,因为事务最终没有提交,所以事务中的修改也不会保存到数据库中。
3. I(isolation) 隔离性
通常来说,一个事务所做的修改在最终提交之前,对其他事务是不可见的。但是不同的隔离级别下面是不同的情况。
4. D(durability) 持久性
事务提交之后,需要将提交的事务持久化到磁盘。即使系统崩溃,提交的数据也不会丢失。