完整教程:MySQL 全体系深度解析(存储引擎、事务、日志、MVCC、锁、索引、执行计划、复制、调优)

news/2025/12/9 19:37:57/文章来源:https://www.cnblogs.com/tlnshuju/p/19328165

完整教程:MySQL 全体系深度解析(存储引擎、事务、日志、MVCC、锁、索引、执行计划、复制、调优)

2025-12-09 19:30  tlnshuju  阅读(0)  评论(0)    收藏  举报

MySQL 的设计本质是一整套围绕“索引 + 日志 + 事务 + 并发控制 + I/O 优化”构建的系统。

全篇结构如下:

  1. MySQL 存储引擎:InnoDB vs MyISAM
  2. InnoDB 索引体系:B+ 树、二级索引、覆盖索引、回表
  3. MySQL 并发控制:MVCC 原理
  4. MySQL 锁机制(行锁、间隙锁、Next-Key)
  5. 日志体系:redo log / undo log / binlog
  6. 事务隔离级别与两阶段提交
  7. 崩溃恢复机制(Crash Recovery)
  8. 索引下推 ICP
  9. EXPLAIN 执行计划详解
  10. 主从复制原理
  11. MySQL 调优体系(索引、SQL、缓存、架构)

读完这篇,你就掌握了 MySQL 从存储到查询、从并发到恢复、从索引到复制的整体视角。


一、存储引擎:InnoDB 与 MyISAM 的本质区别

InnoDB 是 MySQL 默认也是最核心的引擎。
MyISAM 曾经流行,但现在几乎只用在非常特殊的场景。

核心区别如下:

1. 事务支持

  • InnoDB:支持 ACID,具备提交、回滚、崩溃恢复能力
  • MyISAM:不支持事务

2. 锁粒度

InnoDB 对高并发写入场景友好得多。

3. 崩溃恢复

  • InnoDB:有 redo log、undo log
  • MyISAM:数据容易损坏,需要手动修复

4. 外键支持

5. 索引组织方式

  • InnoDB:聚簇索引(主键即数据)
  • MyISAM:数据和索引分离(非聚簇)

一句话总结:
InnoDB 是现代 OLTP(高并发事务系统)的标配;
MyISAM 几乎退出历史舞台。


二、InnoDB 的索引体系:B+Tree、二级索引、覆盖索引、回表

索引是 MySQL 性能的基石。

1. 为什么 MySQL 选择 B+ 树作为索引结构?

B+ 树的优势包括:

  1. 磁盘友好:节点大,一次 I/O 可以读入大量 key
  2. 树高度低:百万级数据树高只有 3~4 层
  3. 范围查询高效:叶子节点链表结构天然支持范围扫描
  4. 所有值存储在叶子节点,路径一致、高效

它是“磁盘 + 关系型查询”的最佳选择。

2. 聚簇索引(主键索引)

InnoDB 的主键索引是聚簇索引:

  • 主键节点的叶子节点即为整行数据
  • 这意味着访问主键是最快的路径
  • 如果没有定义主键,InnoDB 会自动生成 row_id

3. 二级索引(普通索引)

二级索引的叶子节点存储的是“主键”。

因此查询流程为:

二级索引定位主键 → 回到主键索引树 → 取出数据

这就叫 回表

4. 覆盖索引(避免回表)

如果查询只需要的字段都在索引里,就不需要回表。

例如:

SELECT age FROM user WHERE age > 20;

如果 age 单列索引存在,则直接在索引文件中返回结果。

覆盖索引能显著提升性能,因为避免访问聚簇索引。


三、MVCC:InnoDB 如何实现非阻塞读?

MVCC(多版本并发控制)允许:

  • 读不阻塞写
  • 写不阻塞读
  • 普通 SELECT 不加锁

MVCC 依赖三个关键结构:

1. undo log(回滚日志)

记录数据旧版本,用于构建“版本链”。

2. Read View(读视图)

决定当前事务能看到哪些版本。

已提交读隔离级别下的事务在每次查询的开始都会生成一个独立的ReadView,而可重复读隔离级别则在第一次读的时候生成一个ReadView,之后的读都复用之前的ReadView

3. 隐藏字段

每条记录有两个隐藏字段:

数据结构大致如下:

最新版本 → 上一版本 → 再上一版本

快照读过程:

  • 找到第一个符合 Read View 可见性规则的版本
  • 返回给事务,不加锁

这就是 InnoDB 能做到高并发的核心原因。


四、锁机制:记录锁、间隙锁、Next-Key Lock

InnoDB 的锁体系为了解决并发更新与幻读问题。

1. 行锁(Record Lock)

锁住某一行的索引记录。

2. 间隙锁(Gap Lock)

锁住一个索引范围内的空隙,例如:

(10, 20)

防止插入,解决幻读。

3. Next-Key Lock

记录锁 + 间隙锁
用于可重复读隔离级别下的当前读(select … for update)。

Next-Key 是 InnoDB 避免幻读的武器。


五、redo log、undo log、binlog 的关系(核心)

MySQL 的日志体系非常精妙,是高可靠性的基础。

1. redo log:物理日志(InnoDB)

2. undo log:逻辑日志(InnoDB)

  • 用于回滚(rollback)
  • 用于 MVCC 的旧版本链

3. binlog:逻辑日志(Server 层)

4. 两阶段提交(2PC)

为了保证 redo 与 binlog 一致性,MySQL 使用两阶段提交:

1. undo log + redo prepare
2. 写入 binlog
3. redo commit

保证主从复制与本地事务一致。


六、崩溃恢复(Crash Recovery)是怎么实现的?

InnoDB 的崩溃恢复流程:

  1. 读取 redo log 的 checkpoint
  2. 从 checkpoint 开始重放 redo log
  3. 未提交事务,用 undo log 做回滚
  4. double write buffer 防止部分写入导致页损坏

这就是为什么 InnoDB 具有 crash-safe 能力。


七、索引下推(ICP)

索引下推是在存储引擎层提前过滤数据,减少回表次数。

例如:

WHERE age > 20 AND name = 'Jack'

ICP 会在索引层先判断条件,极大减小访问聚簇索引的次数。


八、Explain 执行计划详解

Explain 是 SQL 调优的核心工具。

最重要的字段:

id:执行顺序

越大越先执行。

type:访问类型

从好到差:

system > const > eq_ref > ref > range > index > ALL

ALL 表示全表扫描,需要优化。

key:使用的索引

key_len:索引使用长度

rows:扫描行数

Extra:额外信息

Extra 中非常重要的标记:

使用 temporary 或 filesort 通常是性能瓶颈。


九、MySQL 主从复制

主从复制基于 binlog:

  1. 主库写 binlog
  2. 从库 IO 线程拉取 binlog
  3. 从库 SQL 线程执行 binlog 重放

复制模式:

  • 异步复制
  • 半同步复制
  • 全同步复制

核心问题:主从延迟(尤其是大事务)。


十、MySQL 调优体系:索引、SQL、缓存、架构

调优是 MySQL 的最终目标。

1. 索引调优

  • 避免 select *
  • 使用覆盖索引
  • 利用最左前缀原则
  • 避免函数、运算破坏索引使用
  • 避免前缀模糊匹配(like ‘%xx’)

2. SQL 调优

3. 缓存调优

  • Redis 承担热点缓存
  • 避免数据库频繁磁盘 IO
  • 使用缓存一致性策略

4. 架构调优


最终总结

MySQL 的底层逻辑可概括为四句话:

  1. InnoDB 通过 B+Tree 索引和聚簇索引实现高性能数据访问
  2. 通过 MVCC、行锁和 Next-Key Lock 实现高并发一致性控制
  3. 通过 redo / undo / binlog 和两阶段提交实现事务持久化和复制一致性
  4. 通过 explain 分析、索引优化、SQL 优化和架构设计实现整体性能提升

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/995427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年热门的流延机设备/高分子材料流延机厂家最新权威推荐排行榜

2025年热门的流延机设备/高分子材料流延机厂家权威推荐排行榜行业背景与市场趋势流延机作为高分子材料加工领域的关键设备,近年来随着新能源、电子封装、特种材料等行业的快速发展,市场需求持续增长。2024-2025年,全…

2025年热门的240KW充电桩/新能源充电桩厂家最新权威推荐排行榜

2025年热门的240KW充电桩/新能源充电桩厂家权威推荐排行榜 行业背景与市场趋势 随着全球碳中和目标的推进,新能源汽车市场迎来爆发式增长。据国际能源署(IEA)预测,2025年全球新能源汽车保有量将突破2亿辆,配套…

LMCache:基于KV缓存复用的LLM推理优化方案

LLM推理服务中,(Time-To-First-Token) 一直是个核心指标。用户发起请求到看见第一个token输出,这段时间越短体验越好,但实际部署中往往存在各种问题。 LMCache针对TTFT提出了一套KV缓存持久化与复用的方案。项目开…

2025年12月冲床静音房厂家最新推荐:常州双静环保,设备静音房、测试静音房、冲床隔音房、设备隔音房、测试隔音房、解决方案新标准

随着制造业转型升级与环保要求不断提升,工业噪声治理已成为塑料、五金、测试、机械加工等多个行业关注的焦点。2025年,静音房、隔音房等噪声控制设备市场需求持续增长,但市场上产品性能参差不齐,企业在选购时往往面…

2025年比较好的衣物护理机厂家最新TOP实力排行

2025年比较好的衣物护理机厂家TOP实力排行 开篇:行业背景与市场趋势 随着智能家居市场的快速发展,衣物护理机作为新兴家电品类,正逐渐成为现代家庭的必备产品。2025年,消费者对衣物护理的需求不再局限于简单的洗…

2025年热门的铝合金隔热条厂家推荐及采购指南

2025年热门的铝合金隔热条厂家推荐及采购指南 行业背景与市场趋势 随着全球建筑行业对节能环保要求的不断提高,铝合金隔热条作为门窗幕墙系统的关键部件,市场需求持续增长。隔热条的主要功能是阻断铝型材的热传导,…

2025年评价高的生活废水处理厂家推荐及选择参考

2025年评价高的生活废水处理厂家推荐及选择参考 行业背景与市场趋势 随着城市化进程加快和环保政策日益严格,生活废水处理行业迎来了快速发展期。2025年,我国对生活废水排放标准进一步提高,推动污水处理技术向高效…

2025年口碑好的电热水袋/防爆热水袋厂家最新用户好评榜

2025年口碑好的电热水袋/防爆热水袋厂家用户好评榜电热水袋行业背景与市场趋势随着冬季取暖需求的持续增长,电热水袋作为安全、便捷的取暖产品,近年来市场规模不断扩大。2025年,全球电热水袋市场规模预计将达到35亿…

2025年12月塑胶跑道标杆厂家最新推荐:湖北中奥特,复合型塑胶跑道、透气型塑胶跑道、自结纹塑胶跑道、老国标塑胶跑道、全塑型塑胶跑道、施工维护一体化服务新标准

随着全民健身战略深入实施、校园体育设施升级及体育强国建设步伐加快,塑胶跑道已从专业体育场馆标配逐步普及至学校、社区、公园等各类场所,2025年市场规模预计持续扩大。但市场快速发展也带来厂商技术实力、产品质量…

Python异步编程完全教程:asyncio/aiohttp核心用法与实战

本文系统讲解Python异步编程的基础原理、`asyncio`核心用法、`aiohttp`异步网络请求,以及实战场景中的优化技巧,从入门到进阶覆盖异步编程全流程。异步编程是Python提升I/O密集型任务效率的核心技术,尤其适用于网络…

2025年12月北京园林景观公司标杆推荐:北京缘晟源,园林景观绿化养护、庭院绿化、覆盖京津冀多场景绿化服务

随着 “双碳” 目标深入推进、城市更新与乡村振兴战略落地,园林绿化行业正迎来生态化、精细化、多元化转型,2025 年国内市场规模预计达 1.2 万亿元。立体绿化、节水园林、资源循环等新型需求持续增长,但市场扩容也导…

2025年比较好的除湿机品牌高评价厂家推荐榜

2025年比较好的除湿机品牌高评价厂家推荐榜行业背景与市场趋势随着全球气候变化加剧和人们对室内空气质量要求的提高,除湿机市场在2025年迎来了新一轮的增长。据行业数据显示,中国除湿机市场规模已突破百亿元,年复合…

2025年热门的步入式恒温恒湿试验箱/高低温试验箱最新TOP厂家排名

2025年热门的步入式恒温恒湿试验箱/高低温试验箱TOP厂家排名随着工业4.0和智能制造技术的快速发展,环境试验设备作为产品质量控制的关键环节,正迎来前所未有的市场需求。步入式恒温恒湿试验箱和高低温试验箱作为模拟…

Python 知识讲解 + 示例代码 + 讲解

按照章节 + 知识点给出 Python 知识讲解 + 示例代码 + 讲解。第四章:字符串的格式化方法 Python 中常用的三种字符串格式化方式:1. 百分号格式化(%) 语法 "%格式说明符" % (值)示例 name = "Tom&qu…

python考点讲解- TYUT

给出“是什么→为什么→怎么用→易错点→小练习”的完整讲解,每个知识点都配上可直接运行的 Python 代码与中文注释。第四章 字符串的格式化方法% 老式格式化(了解即可,维护老代码会遇到) str.format() 新式格式化…

完整教程:Vue-Loader 深度解析:原理、使用与最佳实践

完整教程:Vue-Loader 深度解析:原理、使用与最佳实践2025-12-09 19:12 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; d…

2025年口碑好的平开不锈钢合页/钢质门不锈钢合页TOP实力厂家推荐榜

2025年口碑好的平开不锈钢合页/钢质门不锈钢合页TOP实力厂家推荐榜 行业背景与市场趋势 随着建筑行业对高品质五金配件的需求不断提升,不锈钢合页作为门控五金的核心部件,其性能、耐用性和美观度直接影响门的使用寿…

Ganache-CLI以太坊私网JSON-RPC接口大全:从入门到精通 - 指南

Ganache-CLI以太坊私网JSON-RPC接口大全:从入门到精通 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Con…