什么是事务?
事务是一组具有原子性的SQL语句,或是一个独立的工作单位
事务的特性
- 原子性:一个事务必须视为一个不可分割的工作单元,整个事务要么全部提交成功要么全部失败,不可能只提交其中的一部分操作。
- 一致性:保持数据一致
- 隔离性:一个事务对数据库中数据的修改,在未提交前对其他事务不可见。
- 持久性:事务提交后所有数据相应更改。
隔离性的四个级别
1.未提交读:(ReadUncommitted):读取未提交的数据,也被称之为脏读
2.已提交读:(ReadCommitted):俩个事务,一个事务插入数据提交,用select会得到不同的返回值。(数据库默认的隔离性)
3.可重复读:(RepeatableRead):得到相同的返回值。
4.可串行化: (Serializable):通过强制事务排序,使之不可能相互冲突。
可串行性是并行调度正确性的唯一准则,两段锁(简称2PL)协议是为保证并行调度可串行性而提供的封锁协议。