索引
事务
操作序列,要么都做,要么都不做
四个特性
ACID
- Atomicity 原子性:
- Consistency 一致性:
- Isolation 隔离性:
- Durability 持续性:
并发
事务并发带来的数据不一致
- 丢失修改
- 不可重复读
- 读脏数据
可串行化调度
并发执行的结果与串行执行结果相同
两段锁协议
- 对任何数据读、写之前必须先申请并获得对该数据的锁
- 释放一个锁后,不再申请其它锁
遵守两段锁协议,则可串行化(充分条件)
隔离级别
- 未提交读:不能解决“脏读”
- 提交读:不能解决“不可重复读”,行级锁,读完释放,写完保留
- 可重复读:不能解决“幻读”,行级锁,读完保留,写完保留
- 可序列化,表级锁,读完保留,写完保留
悲观锁、乐观锁
悲观锁假设数据总会冲突,因此修改数据前一定申请锁;
乐观锁假设不会数据冲突,只在事务提交的时候检查冲突,版本号法和CAS法