MySQL面试题:MySQL的MVCC机制
MVCC全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。

同一行数据平时发生读写请求时,会上锁阻塞住。但MVCC用更好的方式去处理读—写请求,做到在发生读—写请求冲突时不用加锁。
这个读是指的快照读,而不是当前读,当前读是一种加锁操作,是悲观锁。
所谓的MVCC指的就是在使用READ COMMITTD、REPEATABLE READ这两种隔离级别的事务在执行普通的SEELCT操作时访问记录的版本链的过程,这样可以使不同事务的读-写、写-读操作并发执行,从而提升系统性能。
MVCC只在 READ COMMITTED 和 REPEATABLE READ 两个隔离级别下工作。其他两个隔离级别够和MVCC不兼容,因为 READ UNCOMMITTED 总是读取最新的数据行, 而不是符合当前事务版本的数据行。而 SERIALIZABLE 则会对所有读取的行都加锁。
简单理解:并发访问数据库时(读和写),对正在事务内处理的数据做多版本的管理,以达到用来避免写操作的阻塞,从而提升读操作的并发问题(基于undo log快照读来解决)。
相关推荐
-
MySQL进阶垫脚石:线程长时间处于killed状态怎么破?
MySQL进阶垫脚石:线程长时间处于killed状态怎么破?2025-04-30 01:10:02 -
「你真的知道吗?」Mysql中的DDL, DML, DCL, 和TCL介绍
「你真的知道吗?」Mysql中的DDL, DML, DCL, 和TCL介绍2025-04-30 00:52:57 -
PHP页面跳转2025-04-30 00:44:40
-
php调用自己的方法报错5002025-04-30 00:16:34
-
MYSQL常用查询Columns和Views2025-04-30 00:14:51