事务的特性
- 原子性: 事务是最小的单位, 不可以在分割
- 一致性: 一个事务中的SQL语句, 必须全部成功或者全部失败
- 隔离型: 两个事务具有隔离型
- 持久性: 事物一旦结束(commit, rollback), 不可在返回
事物隔离级别
- 读未提交: 一个事物读到了另一个事物中还未提交的数据, 事物可能会回滚, 如果事物回滚, 则读到了没有提交的数据, 也就是脏读
- 读提交(oracle的默认隔离级别): 不允许读取未提交的数据, 只允许读取已提交的数据, 解决了脏读的问题
- 可重复读(mysql的默认隔离级别): 解决不可重复读的问题, 如果不允许可重复读, 可能造成在同一个事物中两次读取的值不一样的问题, 可重复读允许了第二次读取直接获取第一次读的数据
- 串行化: 解决了幻读的问题, 当一个事物读取了数据, 另一个事物添加了很多行数据, 产生幻读