From 522ff5ba98f7a86a4ddf7a12e8205dd22e1b0aff Mon Sep 17 00:00:00 2001 From: thetcc Date: Mon, 26 Feb 2024 22:49:58 +0800 Subject: [PATCH] Update JAVA.md --- JAVA.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/JAVA.md b/JAVA.md index c53b8ca..d25968c 100644 --- a/JAVA.md +++ b/JAVA.md @@ -3141,7 +3141,20 @@ InnoDB 支持多粒度锁(multiple granularity locking),它允许行级锁 ​ 原因是MVCC的创建版本和删除版本只要在事务提交后才会产生。客观上,mysql使用的是乐观锁的一整实现方式,就是每行都有版本号,保存时根据版本号决定是否成功。Innodb的MVCC使用到的快照存储在Undo日志中,该日志通过回滚指针把一个数据行所有快照连接起来。 +**MVCC的作用** + 在MySQL中,MVCC(Multi-Version Concurrency Control,多版本并发控制)是一种用于实现并发控制的技术,它主要用于提供数据库系统的并发读取和写入操作,同时保证事务的隔离性。 +MVCC 的主要作用包括: + +**提供并发读取操作**:MVCC 允许多个事务同时读取数据库中的数据,即使在其他事务正在对数据进行修改的情况下。每个事务都能够看到一个一致的数据库快照,而不会受到其他事务的影响。 + +**保证事务的隔离性**:MVCC 使用了一种乐观并发控制的机制,通过记录数据的多个版本来实现事务的隔离。每个事务在执行过程中,可以看到一个一致性的数据库快照,即使其他事务在执行过程中对数据进行了修改。 + +**实现非阻塞读操作**:MVCC 允许读取操作不会阻塞写入操作,反之亦然。这意味着即使有写入操作正在进行,读取操作也可以继续执行,不会受到写入操作的影响。 + +**提高并发性能**:由于MVCC允许多个事务并发地读取和写入数据,因此可以显著提高数据库系统的并发性能。在高并发环境下,MVCC可以降低锁竞争和冲突的概率,从而提高系统的吞吐量和性能表现。 + +总的来说,MVCC 是一种高效的并发控制技术,它通过管理数据的多个版本来提供并发读取和写入操作,同时保证事务的隔离性,从而提高数据库系统的性能和并发能力。 **版本链** @@ -6276,4 +6289,4 @@ Raft使用**心跳机制**来触发选举。当server启动时,初始状态都 - 基于JWT的Token,数据从cache或者数据库中获取 - 基于Tomcat的Redis,简单配置conf文件 -- 基于Spring的Redis,支持SpringCloud和Springb \ No newline at end of file +- 基于Spring的Redis,支持SpringCloud和Springb