首先事务是什么,
事务是要做的事。是并发控制单元,是自定义的操作序列。这些操作要么全部都做,全部都完成,要么全部都不做,全部都失败。
事务的经典场景:
小明向小东转账100快。这包含了“小明账户扣除100”、“小东账户增加100快”两个操作。很显然,这个两个操作必须全部完成,或者全部失败,才能保证一个完整的事务。如果“扣钱”操作成功,但是“加钱”操作失败,那么整个事务就必须回滚rollback。
事务的四个特征:一致性,原子性,隔离性,持久性
原子性:指事务包含的所有操作要么全部成功,要么全部失败回滚,
一致性:一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。如转账业务,无论事务执行成功与否,参与转账的两个账户余额之和应该保持不变。
隔离性:隔离性是指在并发操作中,不同事务之间应该隔离开来,使每个并发中的事务不会互相干扰。
持久性:久性是指一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,