该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点
面试官:Innodb的事务实现原理
InnoDB是MySQL中一种常用的存储引擎,它支持事务和行级锁等特性。以下是InnoDB事务实现的简要原理:
-
事务定义:
- 事务是指一组数据库操作,这些操作要么全部成功执行,要么全部回滚,不会只执行其中一部分。
-
ACID属性:
- InnoDB事务遵循ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。
- 原子性:事务中的所有操作要么全部成功,要么全部回滚。是使用 undo log来实现的,如果事务执行过程中出错或者用户执行了rollback,系统通过undo log日志返回事务开始的状态。
- 一致性:事务执行前后数据库的状态保持一致。通过回滚、恢复,以及并发情况下的隔离性,从而实现一致性
- 隔离性:事务之间应该相互隔离,互不干扰。通过锁以及MVCC,使事务相互隔离开
- 持久性:一旦事务提交,对数据库的更改应该永久保存。使用 redo log来实现,只要redo log日志持久化了