首页 > 其他分享 >【面试】【2】谈谈对MVCC的理解

【面试】【2】谈谈对MVCC的理解

时间:2022-08-16 15:03:16浏览次数:46  
标签:事务 并发 数据库 问题 面试 谈谈 MVCC 操作

1、MVCC是什么?

MVCC是为了解决事务操作中多线程并发安全问题无锁并发控制技术,它的全称是Multi-Version Concurrency Control,多版本并发控制,简称MVCC。

 

2、事务操作中多线程并发安全问题有哪些?

读读并发:这种情况不会产生并发问题,也不需要并发控制

读写并发:这种情况可能会造成事务隔离型问题,还可能会出现脏读、幻读和不可重复度的问题

写写并发:会出现数据更新丢失的问题

 

3、怎么解决的

MVCC相当于是为每个修改保存⼀个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照。它是通过数据库记录中的隐式字段Undo日志、Read View来实现的。

 

4、MVCC解决了什么问题?

在并发读写数据库时,可以做到在读操作时不用阻塞写操作,写操作也不用阻塞读操作,从而提高数据库的并发读写的处理能力。

能实现读一致性,从而解决脏读、幻读、不可重复读等事务隔离问题,但是不能解决数据更新丢失的问题。

采用乐观锁或者悲观锁用来解决写和写的冲突,从而最大程度地去提高数据库的并发性能。

 

标签:事务,并发,数据库,问题,面试,谈谈,MVCC,操作
From: https://www.cnblogs.com/qingxuan0316/p/16591574.html

相关文章

  • 【Java面试】聊聊你知道的设计模式
    “聊聊你知道的设计模式!”这个问题很简单,但是要让面试官认可你的回答,那还是得花点心思。大家好,我是Mic,一个工作了14年的Java程序员。今天给大家分享一下,当遇到这种比较......
  • redis的常见面试题
    为什么要用redis减少了mysql数据库的压力,在这之前mysql一个人承受,然后要承受大量的数据请求,大部分都是读操作。而且经常都是重复查一个东西,浪费了很多时间进行磁盘iore......
  • 【面试】【1】HashMap的扩容机制
    1、HashMap是一种数据存储的容器,当创建一个集合对象的时候,实际上就是在内存里面一次性的申请了一块内存空间,存储容量的大小是在创建集合的时候给指定的,HashMap的默认大小是......
  • 请你谈谈网站是如何进行访问的!
    输入一个域名;回车检查本机的C:\Windows\System32\drivers\etc\hosts配置文件下有没有这个域名映射;有:直接返回对应的ip地址,这个地址中,有我们需要访问的web程序,可以......
  • Vue面试题-组件间通信方式
    父子组件:props(父传子)$emit/$on(子传父) $on已被Vue3废弃$parent/$children$children已被Vue3废弃ref隔代组件:透传:$attrs/$listeners$listners已被Vue3废......
  • 【java面试题】final
    【java面试题】final final的作用final的含义是最终的修饰类:表示类不可被继承修饰方法:表示方法不可被子类重写,但是可以重载修饰变量:表示变量一旦被赋值就不......
  • 【java面试题】 == 和 equals
    【java面试题】==和equals "=="比较的机制:==对比的是栈中的值基本数据类型是变量值,也就是inti=1;在栈中存放的是i=1,==比较的也是这个数值1引用类型是堆中......
  • 接口测试经典面试题:Session、cookie、token有什么区别?
    原文链接HTTP是一个没有状态的协议,这种特点带来的好处就是效率较高,但是缺点也非常明显,这个协议本身是不支持网站的关联的,比如https://ceshiren.com/和https://ceshiren.co......
  • 【java面试题】ArrayList和LinkedList的区别
    【java面试题】ArrayList和LinkedList的区别 ArrayList和LinkedList都实现了List接口,它们有一下的不同点:ArrayList是基于索引的数据接口,它的底层是数组,它可以以O(1)时......
  • 【java面试题】面向对象的特征
    【java面试题】面向对象的特征 面向对象编程是利用类和对象编程的一种思想,万物可归类,类是对于世界事物的高度抽象,万物皆对象,对象是具体的世界事物。面向对象的三大特征......