1、事务
事务是数据库区别于文件系统的重要特性;在数据库提交工作时,可以确保其要么对所有修改都已经保存,要么对所有修改操作都不保存。
事务的特性:ACID
A atomicity:原子性。整个取款操作应该视为原子操作,要么都做要么都不做,不能钱没取出,卡上已经扣除。原子性指整个数据库事务是不可分割的工作单位,只有使事务中所有的数据库操作都执行成功,整个事务的执行才算成功。任何一个SQL语句执行失败,那么已经成功的SQL也必须撤销,数据库状态应该退回到执行事务前的状态。
C consistency 一致性。在事务开始之前和结束以后,数据库的完整性约束没有被破坏,唯一约束不会被破坏。
I isolation 隔离性。隔离性也称并发控制。事务的隔离性要求每个读写事务的对象与其他事务的操作对象能相互分离,即该事务提交前对其他事务都不可见,这通常使用锁实现。
D durability 持久性。事务一旦提交,其结果就是永久性的。即使宕机也能恢复。
2、事务的隔离级别
事务的隔离级别越高,锁越多,保持锁的时间越长
ANSI SQL标准定义的四个隔离级别为:
read uncommitted 浏览访问
read committed 游标稳定
repeatable read 幻读的保护 2.9999°的隔离
serializable 隔离