一天一道面试题——数据库篇6(事务)

事务

访问并可能操作各种数据项的一个数据库操作序列。
ACID

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

隔离级别

  • 未提交读
    产生的问题是脏读。
    场景:事务A修改数据后,没有提交,事务B读取数据后,事物A回滚了,导致事物B读到了脏数据。
  • 提交读
    产生的问题是不可重复度。
    场景:事物A读取数据后,事物B修改数据并提交,事务A再次读取,得到的数据和第一次读取的数据不一致。
  • 可重复度
    产生的问题是幻读。
    场景: 事务A 按照一定条件进行数据读取, 期间事务B 插入了相同搜索条件的新数据,事务A再次按照原先条件进行读取时,发现了事务B 新插入的数据,称为幻读。
  • 串行化

InnoDB处理幻读

InnoDB默认的隔离界别是可重复读,InnoDB使用MVCC实现事务的提交读和可重复度。并使用临键锁(Next-Key Locks)在可重复读的隔离界别下解决幻读。

你可能感兴趣的:(一天一道面试题——数据库篇6(事务))