银行面试之MySQL数据库(事务)

本文详细介绍了MySQL数据库中的事务特性(ACID),事务日志(redo log和undo log)以及并发一致性问题(丢失修改、读脏数据、不可重复读、幻读)。讨论了锁的类型(行级锁、表级锁、页级锁)和锁的类别(共享锁、排他锁),并解释了乐观锁与悲观锁的工作机制。文章还深入探讨了事务的四种隔离级别及其作用,并提到了多版本并发控制(MVCC)作为实现高并发性能的手段。
摘要由CSDN通过智能技术生成

事务是不可分割的数据库操作序列,也是数据库并发控制的基本单位。


事务的四个特征(ACID)

原子性(Atomicity):事务被视为不可分割的最小单元,事务的所有操作要么全部提交成功,要么全部失败回滚。
一致性(Consistency):在一致性状态下,所有事务对同一个数据的读取结果都是相同的。
隔离性(Isolation):一个事务所做的修改在最终提交以前,对其它事务是不可见的
持久性(Durability):一旦事务提交,则其所做的修改将会永远保存到数据库中。即使系统发生崩溃,事务执行的结果也不能丢失。

ACID的关系


事务日志

InnoDB事务日志主要包括redo log和undo log。

redo log通常是物理日志,记录的是数据页的物理修改,它用来恢复提交后的物理数据页,用于实现事务的持久性。
undo log一般是逻辑日志,根据每行记录进行记录,用来回滚行记录到某个版本。

详情参考:https://blog.csdn.net/u014398524/article/details/106505549/


并发一致性问题

丢失修改指一个事务的更新操作被另外一个事务的更新操作替换。例如:T1 和 T2 两个事务都对一个数据进行修改,T1 先修改并提交生效,T2 随后修改,T2 的修改覆盖了 T1 的修改。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值