当前位置: 首页 > 图灵资讯 > java面试题> 金三银四精选java面试题-解释下 MySQL 事务的四大特性ACID以及实现原理

金三银四精选java面试题-解释下 MySQL 事务的四大特性ACID以及实现原理

来源:图灵教育
时间:2023-12-06 15:28:12
 

解释下 MySQL 事务的四大特性ACID以及实现原理

事务四大特性

ACID四大特性:

  • 原子性(Atomicity):事务作为一个整体被执行,包含在其中的对数据库的操作要么全部被执行,要么都不执行。
  • 一致性(Consistency):指在事务开始之前和事务结束以后,数据不会被破坏,假如 A 账户给 B 账户转 10 块钱,不管成功与否,A 和 B 的总金额是不变的。
  • 隔离性(Isolation):多个事务并发访问时,事务之间是相互隔离的,即一个事务不影响其它事务运行效果。
  • 持久性(Durability):表示事务完成以后,该事务对数据库所作的操作更改,将持久地保存在数据库之中。

ACID实现原理:

  • 事务的隔离性是通过数据库锁以及MVCC机制实现的。
  • 事务的一致性由undo log来保证:undo log是逻辑日志,记录了事务的insert、update、delete操作,回滚的时候做相反的delete、update、insert操作来恢复数据。
  • 事务的原子性和持久性由redo log来保证:redo log被称作重做日志,是物理日志,事务提交的时候,必须先将事务的所有日志写入redo log持久化,到事务的提交操作才算完成。