05|MVCC原理

Mysql在读已提交可重复读隔离级别下都实现了MVCC机制

MVCC(Multi-Version Concurrency Control)机制来保证的,对一行数据的读和写两个操作默认是不会通过加锁互斥来保证隔离性,避免了频繁加锁互斥,而在串行化隔离级别为了保证较高的隔离性是通过将所有操作加锁互斥来实现的

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MVCC(Multi-Version Concurrency Control,多版本并发控制)是一种数据库并发控制机制,主要用于保证在高并发环境下数据的一致性和完整性。在Java中,MVCC通常与关系型数据库系统如Oracle、MySQL等的InnoDB存储引擎相关。 MVCC原理主要包含以下几个关键点: 1. 数据版本:每个事务看到的是数据的一个独立版本,而不是实时的最新状态。每个版本都有一个时间戳或版本号,表示该数据的修改时间。 2. 读已提交(Read Committed):当事务开始时,它只会看到已经提交的更改。这样,即使有其他事务在修改同一数据,当前事务也能看到稳定的结果,不会看到未提交的更改。 3. 少数读脏(Read Uncommitted):一些数据库支持更高的并发度,允许事务看到其他事务未提交的修改,但这可能导致“脏读”(读到未提交的数据)。这是有风险的,通常仅在特定场景下使用。 4. 不可重复读(Repeatable Read):事务在执行过程中,如果多次读取同一数据,结果应该一致,不会因为其他事务的提交而改变,这通常通过锁定机制来实现。 5. 可串行化(Serializable):这是最高的隔离级别,确保所有事务看起来像是顺序执行,但实际性能较低。 在Java中,MVCC不直接体现在语言层面,而是由底层数据库管理系统实现。例如,Java应用程序通过JDBC连接数据库时,其实质上是在和数据库进行MVCC相关的交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值