A:原子性 事务的操作都不可再分
C:一致性 从一个一致状态到另一个一致的状态 比如说转账场景中 总金额不管怎么转账都不会改变
I:隔离性 面对并发场景 事务依然可以正常运行
D:持久性 事务一旦提交 就不可以回滚的
隔离级别:read-uncommited (最低) read_commited 可以避免脏读,不可避免不可重复读和幻读 repeatable 可重复读 serializable可串行化
脏读:当一个用户提交数据时 并没有提交事务 另一个用户来读数据 会读到脏数据 真正的数据是第一个用户提交过后的数据
不可重复读:当一个用户修改数据并提交时,另一个用户在事务提交之前 读到了两次不一样的内容
可重复读:用户修改数据并提交过后,另一个用户去查询,在另一个用户提交之前 也不可以获取到第一个用户修改过后的数据 必须等第二个用户提交事务过后才能获取最新的数据
幻读:在第一个用户准备更新数据时,另一个用户在第一个用户更新之前,插入了一个用户。这时候第一个用户在更新时会发现有三行数据受影响。应该是二行受影响才对