数据库事务
原子性: 多个操作组成最小不可分割单元。
一致性: 操作成功后,数据库的状态和业务规则是一致的。
隔离性: 并发数据处理时,相互不干扰。
持久性: 一旦事物提交成功后,数据的操作被记入库中。
数据库并发问题
脏读:读取不可靠的数据(数据被回滚了),Oracle不会发生脏读情况。
不可重复读:同一事务中两次读取数据有差异(数据被别的事务修改、删除)。
幻象读:A事务读到B事务提交的新数据,导致A前后读取不一致。(很像不可重复读,不同的是幻象第二次数据是增加。采用锁表防止增加。)
第一次丢失更新:A事务撤销时,在A事务开始和结束的B事务也抹杀了。无视B的存在。
第二次丢失更新:A事务覆盖B事务已提交的数据,造成B事务操作丢失。
事务隔离级别
隔离级别 | 脏 读 | 不可重复读 | 幻象读 | 第一类丢失更新 | 第二类丢失更新 |
---|---|---|---|---|---|
READ UNCOMMITED | 允许 | 允许 | 允许 | 不允许 | 允许 |
READ COMMITTED | 不允许 | 允许 | 允许 | 不允许 | 允许 |
REPEATABLE READ | 不允许 | 不允许 | 允许 | 不允许 | 不允许 |
SERIALIZABLE | 不允许 | 不允许 | 不允许 | 不允许 | 不允许 |
转载:https://blog.csdn.net/weixin_42679286/article/details/102154921
查看评论