当前位置: 首页 > ds >正文

mysql没有mvcc之前遇到了什么问题

MySQL 的 MVCC(Multi-Version Concurrency Control,多版本并发控制) 是 InnoDB 存储引擎实现高并发事务的核心机制之一。它通过为每行数据维护多个版本,避免读写冲突,实现“读不阻塞写,写不阻塞读”,从而提高数据库的并发性能。

在 MySQL 5.1 之前,早期版本的 InnoDB 存储引擎功能较弱,缺乏行级锁外的并发控制优化,表压缩和分区支持不完善。MyISAM 是默认引擎,但不支持事务和崩溃恢复,容易导致数据损坏。

InnoDB 并发控制主要依赖锁机制,这导致了一系列显著的问题,具体表现如下:

✅ 1. 读写互相阻塞,并发性能差

  • 没有快照读(Snapshot Read),所有一致性读都必须加 共享锁(S锁)

  • 写操作需要 排他锁(X锁),与读锁互斥。

  • 结果是读阻塞写、写阻塞读,高并发下性能急剧下降

✅ 2. 默认存储引擎 MyISAM 不支持行锁

  • MySQL 5.1 之前默认使用 MyISAM 存储引擎。

  • MyISAM 只支持 表级锁,即:

    • 写操作(INSERT/UPDATE/DELETE)会锁住整张表。

    • 读操作(SELECT)也会阻塞写操作,反之亦然。

  • 并发读写场景下性能极差,不适合高并发 OLTP 系统

✅ 3. 无事务隔离级别支持,数据一致性问题严重

  • MyISAM 不支持事务,无法解决以下经典并发问题

 ✅4. 死锁与锁等待频繁

  • 仅靠锁机制,多个事务交叉访问资源时极易形成死锁

  • 没有 MVCC 的“读不阻塞写”机制,锁竞争严重,死锁检测和回滚开销大

✅ 5. 长事务阻塞严重

  • 由于读也要加锁,长查询(如报表)会长时间锁住表,阻塞所有写操作。

  • 无法像 MVCC 那样提供一致性快照读,导致线上业务容易被拖垮

✅ 6. 崩溃恢复能力差

  • MyISAM 不支持崩溃恢复,一旦宕机,表容易损坏,数据可能丢失

🔍 总结一句话:

MySQL 5.1 之前没有 MVCC,导致“锁太重、表太粗、事务太弱”,并发性能差、数据一致性差、系统稳定性差,难以支撑现代高并发业务。

http://www.xdnf.cn/news/18762.html

相关文章:

  • 2025年AI Agent规模化落地:企业级市场年增超60%,重构商业作业流程新路径
  • Hive中的join优化
  • 基于SpringBoot的招聘系统源码
  • 解决Conda访问官方仓库失败:切换国内镜像源的详细教程
  • STAR-CCM+|K-epsilon湍流模型溯源
  • GEO优化供应商:AI搜索时代的“答案”构建与移山科技的引领,2025高性价比实战指南
  • 基于大模型的对话式推荐系统技术架构设计
  • Linux服务环境搭建指南
  • AI绘画落地难?我用Firefly+Marmoset,将2D概念图“反向工程”为3D游戏资产
  • Deep Unfolding Net(LR到HR)
  • Linux 进程间通信之System V 共享内存
  • react中多个页面,数据相互依赖reducer解决方案
  • 文生3D实战:用[灵龙AI API]玩转AI 3D模型 – 第7篇
  • 青少年机器人技术(四级)等级考试试卷-实操题(2021年12月)
  • Boost.Asio 库中的 async_read_some用法
  • 我从零开始学习C语言(14)- 基本类型 PART1
  • vscode 中自己使用的 launch.json 设置
  • 5.7 生成环境使用cdn加载element ui
  • ASCOMP PDF Conversa:高效精准的PDF转换工具
  • pcie实现虚拟串口
  • 人工智能之数学基础:离散随机变量和连续随机变量
  • Java中如何实现对象的拷贝
  • RHCSA--命令(一)
  • 我是如何写作的?
  • Manus AI 与多语言手写识别技术文章大纲
  • 单例模式与线程池
  • 【Vue✨】Vue 中的 diff 算法详解
  • 云原生概述
  • git的工作使用中实际经验
  • 【码蹄杯】2025年本科组省赛第一场