事务原则:ACID原则
- 原子性(Atomicity):要么都成功,要么都失败
- 一致性(Consistency):事务前后数据完整性要保持一致
- 隔离性(Isolation):并发访问不同事务互不影响
- 持久性(Durability):事务一旦提交则不可逆,会持久化到数据库;事务没有提交,恢复到原状
事务隔离导致的问题:
脏读:一个事务读取了另外一个事务没有提交的数据,导致读取结果不一致
不可重复读:同一个事务,多次读取结果不同。第一次读取另外一个事务提交前的数据,第二次读取提交后的数据,造成多次读取结果不同。一般发生在涉及数据修改的场景
虚读(幻读):一个事务读取到别的事务插入的数据,导致前后结果不一致。不同事务对同一个表进行修改操作,第一个事务把所有年龄改成3,第二个事务又插入一个年龄为9的数据。一般发生在数据新增或删除的场景