mysql并发能力有多强,mysql支持最大多少并发

首页 > 招聘 > 作者:YD1662023-10-29 02:03:15

在 MySQL 中,MVCC (多版本并发控制)主要解决并发访问数据库带来的一系列问题。

例如,读写之间阻塞的问题、减少死锁的发生、解决一致性读(快照读)的问题。

MVCC 可以在尽量减少锁使用的情况下,用更高效、更好的方式去处理读写冲突,极大提高了数据库并发性能

mysql并发能力有多强,mysql支持最大多少并发(1)

本篇主要深入理解 MVCC(多版本并发控制)原理。

PS.

刚结束的 Binlog 系列,宝子们的反馈还不错,例如:例如:binlog从基础到精通系列图解bin log、redo log及undo log区别等,宝妹儿已将内容更新到《MySQL 大厂高频面试题大全》PDF了,方便系统学习、面试通关。

《MySQL 大厂高频面试题大全》PDF,已收录100 道真题,一共78页,近30000字,文末自取。

吃透它,足以应付MySQL面试。

mysql并发能力有多强,mysql支持最大多少并发(2)

01

什么是 MVCC

MVCC ,即多版本并发控制,全拼 Version Concurrency Control

MVCC 为每个事务创建多个数据版本,每个版本对应一个特定时间点的数据库状态,不同事务可以基于各自的时间点来进行读取和写入操作,而不会相互干扰。

02

什么是当前读、快照读?

在深入MVCC 前,有必要先了解下 MySQL InnoDB 的当前读和快照读。

当前读和快照读是 MVCC 机制下的两种不同读取数据的方式,分别适用于不同的应用场景。

当前读(Current Read)

快照读(Snapshot Read)

主要根据事务隔离级别和应用需求的不同,来选择适合的读取方式。

03

MVCC 的作用

数据库的三种并发场景是读 - 读、读 - 写、写 - 写。

在 MySQL InnoDB 中,MVCC 主要解决并发访问数据库带来的一系列问题

MVCC 支持数据库的不同事务隔离级别,例如读未提交、读已提交、可重复读和串行化

在多个事务同时读取和修改数据库时,MVCC 可以在尽量减少锁使用的情况下,用更高效、更好的方式去处理读写冲突,即便出现了读写冲突,也可以做到不加锁、非阻塞并发读,极大提高了数据库并发性能

mysql并发能力有多强,mysql支持最大多少并发(3)

PS. 脏写最为严重,四种隔离级别都不允许出现脏写,因此没有脏写。

04

MVCC 的实现原理

在 InnoDB 存储引擎为每行数据添加了三个隐藏字段:trx_id、roll_pointer、row_id。

MVCC 的实现主要依赖于这三个隐藏字段、Undo log 及 ReadView

mysql并发能力有多强,mysql支持最大多少并发(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.