一天一道面试题——数据库篇6(事务)
2022-02-20 本文已影响0人
猿哥媛姐
事务
访问并可能操作各种数据项的一个数据库操作序列。
ACID
- 原子性
- 一致性
- 隔离性
- 持久性
隔离级别
- 未提交读
产生的问题是脏读。
场景:事务A修改数据后,没有提交,事务B读取数据后,事物A回滚了,导致事物B读到了脏数据。 - 提交读
产生的问题是不可重复度。
场景:事物A读取数据后,事物B修改数据并提交,事务A再次读取,得到的数据和第一次读取的数据不一致。 - 可重复度
产生的问题是幻读。
场景: 事务A 按照一定条件进行数据读取, 期间事务B 插入了相同搜索条件的新数据,事务A再次按照原先条件进行读取时,发现了事务B 新插入的数据,称为幻读。 - 串行化
InnoDB处理幻读
InnoDB默认的隔离界别是可重复读,InnoDB使用MVCC实现事务的提交读和可重复度。并使用临键锁(Next-Key Locks)在可重复读的隔离界别下解决幻读。