事务的四大基本特征acid
1: 原子性(Atomicity):数据库中原子性强调事务是一个不可分割的整体,事务开始后所有操作要么全部成功,要么全部失败,不可能停滞在中间某个环节。如果事务执行过程中出错就会回滚到事务开始前的状态,所有的操作就像没有发生一样不会对数据库有任何影响
mysql是通过undolog日志实现事务的原子性
2:一致性(Consistency):事务必须使数据库从一个一致性状态变换到另一个一致性状态,即一个事务执行之前和执行之后都必须处于一致性状态。一致性是事务管理的最终目标。
3:持久性(Durability):一个事务一旦被提交commit,则对数据库的所有更新将被永久保存到数据库,不能被回滚
4:隔离性(Isolation):多个并发事务之间要相互隔离,事务之间不能相互影响,mysql默认设置了事务的隔离
如果事务不进行隔离会存在那些问题?
1:脏读
2:不可重复读
3:幻读
事务的隔离级别
1:读未提交 此级别不能解决三类错误读问题
2:读已提交 此级别只能解决脏读问题
3:可重复读 此级别解决不了幻读
4:串行化 此级别三种误读问题都能解决 但是效率太低
mysql默认的事务隔离级别是 repeatable read
oracle默认的事务隔离级别是 read committed