事务的ACID原则分别是
- Atomicity(原子性):要么同时成功,要么同时失败,不会出现一个失败一个成功的情况。
- Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破怀。
- Isolation(隔离性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致的数据不一致。
- Durability(持久性):意味着在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚
隔离性导致的问题
脏读:一个事务误读了另一个事务未提交的数据,而这个数据可能回滚。
不可重复读:一个事务范围内的两个相同查询返回了不同数据。如:事务A对某个查询执行了两次,当第一次执行完时,事务B对某数据进行了修改,事务A再次查询时,数据发生了变化。
幻读(虚读):例如事务A对一个表中的全部行进行了修改,事务B向表中插入了一行,事务A发现表中还有没有修改的数据,仿佛出现了幻觉。