1)事务:事务是一个最小的不可再分的工作单元,是一组原子性的SQL操作,事务内的语句,要么全部执行成功,要么全部执行失败;通常一个事务对应一个完整的业务(例如银行账户转账业务,该业务就是一个最小的工作单元)
2)事务有四大特征(ACID):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
3)原子性:事务是一个最小的不可再分的工作单元,事务内的语句,要么全部执行成功,要么全部执行失败;事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样
银行应用是解释事务的一个经典例子。假设一个银行的数据库有两张表:支票(checking)表和储蓄(savings)表。现在要从用户A的支票账户里转移200美元到她的储蓄账户,那么需要至少三个步骤:
以上三个步骤的操作必须打包在一个事务中,任何一个步骤失败,则必须回滚所有的步骤。
4)一致性:一致性是指数据库总是从一个一致性的状态转换到另一个一致性的状态;在前面的例子中,一致性确保了,即使在执行第三条语句时系统崩溃,支票账户中也不会损失200美元,因为事务最终没有提交,所以事务中所做的修改也不会保存到数据库中
5)隔离性:隔离性是指一个事务所做的修改在最终提交以前,对其他事务是不可见的;在前面的例子中,当还未执行完第三条语句时,此时有另外的一个账户汇总程序开始运行,则其看到支票帐户的余额并没有被减去200美元的
6)持久性:持久性是指一旦事务提交,则其所做的修改会永久保存到数据库
1)SQL标准中定义了四种隔离级别(级别递增):未提交读(Read Uncommitted)、提交读(Read Committed)、可重复读(Repeatable Read)、可串行化(Serializable)
2)未提交读:
3)提交读:
4)可重复读:
5)可串行化:
2)
3)
4)
5)
6)
1)
2)
3)
4)
5)
6)
原文:https://www.cnblogs.com/Joezzz/p/10536126.html