mvcc的作用
MVCC多版本并发控制指的是 “维持一个数据的多个版本,使得读写操作没有冲突” 这么一个概念。仅仅是一个理想概念
而在MySQL中,实现这么一个MVCC理想概念,我们就需要MySQL提供具体的功能去实现它,而快照读就是MySQL为我们实现MVCC理想模型的其中一个具体非阻塞读功能。而相对而言,当前读就是悲观锁的具体功能实现
要说的再细致一些,快照读本身也是一个抽象概念,再深入研究。MVCC模型在MySQL中的具体实现则是由 3个隐式字段,undo日志 ,Read View 等去完成的,具体可以看下面的MVCC实现原理,是一种用来解决读-写冲突的无锁并发控制,也就是为事务分配单向增长的时间戳,为每个修改保存一个版本,版本与事务时间戳关联,读操作只读该事务开始前的数据库的快照。 所以MVCC可以为数据库解决以下问题,
在很多情况下避免了加锁操作,因此开销更低。大多数的MVCC都实现了非阻塞的读操作,写操作也只锁定必要的行。
ConcurrentHashMap的相关
https://blog.csdn.net/qq_22343483/article/details/98510619
https://mp.weixin.qq.com/s/exeWjwdXJ_9ota4lFO_W3Q
Hashmap
https://mp.weixin.qq.com/s/keA-xNOHxMUPAFxKnna-Bg
JAVA内存可见性详解
http://baijiahao.baidu.com/s?id=1645165262877220078&wfr=spider&for=pc
垃圾收集算法相关和内存区域划分
volatile关键字相关:指令重排序,内存可见性
##mvcc多版本并发控制
https://www.jianshu.com/p/8845ddca3b23
文章来源于多个网站,详细知识点,点击链接进行查看