首页 存档 技术 查看内容

MySQL中的MVCC(r12笔记第35天)

2018-3-30 13:00 |来自: 互联网 349 0

摘要: 最近同事也问了我关于MySQL MVCC的一些问题,我觉得这个话题蛮有意思, 而之前似乎也没有总结过,就参考了一些资料,把一些内容摘录出来。 什么是MVCC以下内容摘自:http://www.jdon.com/repository/database-mvcc.h ...

最近同事也问了我关于MySQL MVCC的一些问题,我觉得这个话题蛮有意思, 而之前似乎也没有总结过,就参考了一些资料,把一些内容摘录出来。

什么是MVCC

以下内容摘自:http://www.jdon.com/repository/database-mvcc.html

关系数据库管理系统使用MVCC(Multiversion Concurrency Control多版本并发控制)来避免写操作堵塞读操作的并发问题,MVCC也就是通过使用数据的多个版本保证并发读写不冲突的一种机制,不同的数据库有不同的实现,这也是数据库系统让人头疼的地方.

MVCC的两种不同实现方式

以下内容摘自:http://www.jdon.com/repository/database-mvcc.html

  第一种实现方式是将数据记录的多个版本保存在数据库中,当这些不同版本数据不再需要时,垃圾收集器回收这些记录。这个方式被PostgreSQL和Firebird/Interbase采用,SQL Server使用的类似机制,所不同的是旧版本数据不是保存在数据库中,而保存在不同于主数据库的另外一个数据库tempdb中/

  第二种实现方式只在数据库保存最新版本的数据,但是会在使用undo时动态重构旧版本数据,这种方式被Oracle和MySQL/InnoDB使用。

MVCC是为了解决什么问题?

以下摘自 :http://blog.csdn.net/whoamiyang/article/details/51901888


路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部