Atomicity: 原子性
事务中所有操作时不可再分的原子单位,要么全部成功,要么全部失败
Consistency:一致性
事务执行后 数据库状态与其他业务规则保持一致,如转账业务,无论事务执行成功与否,参与转账的两个账号余额之和应该不变
Isolation:隔离性
并发操作中,不同事务之间应该隔离起来,是每个并发中的事务不会相互干扰
Durability:持久性
一旦事务提交成功,事务中所有的数据操作都必须被持久化到数据库中,即使提交事务后,数据库马上崩溃,重启后,也必须通过某种机制回复(存log)
事务并发读问题
脏读: 读取到另一个事务未提交数据
不可重复读: 两次读取不一致
幻读(虚读): 读到另一个事务已提交数据
四大隔离级别:
Tables | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
Read Uncommitted | 允许 | 允许 | 允许 |
Read Committed | 不允许 | 允许 | 允许 |
Repeatable Read | 不允许 | 不允许 | 允许 |
Serializable | 不允许 | 不允许 | 不允许 |
Oracle默认是read committed 可以选择Serializable
Mysql默认是Repeatable Read
网友评论