首页 > MySQL > 当前页面

MySQL核心知识体系(基于XMind整理版)

2026-06-08 NEW个对象

🚀 MySQL核心知识体系(基于XMind整理版)

1️⃣ MySQL整体架构认知

MySQL作为典型的关系型数据库,其核心能力围绕“存储、索引、事务、锁、日志、复制”六大模块展开。 在高并发系统中,MySQL不仅是数据存储工具,更是整个业务系统稳定性的基石。

MySQL架构核心 = 存储引擎 + SQL执行层 + 日志系统 + 复制系统

从工程角度来看,MySQL的设计目标是:在保证数据一致性的前提下尽可能提升并发性能

2️⃣ 主从复制与高可用架构

主从复制是MySQL高可用架构的基础,通过binlog实现数据同步。 主库负责写操作,从库负责读操作,从而实现读写分离。

💡 核心机制:主库写入binlog → 从库拉取 → SQL线程重放

执行流程如下:

主库写入数据
→ 生成binlog
→ dump线程发送日志
→ 从库IO线程接收
→ 写入relay log
→ SQL线程执行重放

双主复制虽然提升可用性,但也带来了数据冲突问题,因此在生产环境需谨慎使用。

3️⃣ 存储引擎对比(InnoDB vs MyISAM)

MySQL最核心的设计之一是存储引擎插件化,其中InnoDB是默认引擎。

  • MyISAM:不支持事务,表锁,查询快但不安全
  • InnoDB:支持事务,行锁,MVCC,高并发能力强
⚠️ 生产环境几乎统一使用InnoDB,因为它支持崩溃恢复与事务一致性

InnoDB的核心优势在于:事务 + 行级锁 + MVCC,使其能够支撑高并发系统。

4️⃣ MVCC机制(多版本并发控制)

MVCC是InnoDB实现高并发的核心机制,通过“数据版本链”实现读写不冲突。

核心思想:同一行数据保留多个历史版本

读取分为两种模式:

  • 快照读:读取历史版本,不加锁
  • 当前读:读取最新数据,会加锁

MVCC的本质是通过undo log维护版本链,从而实现“读写互不阻塞”。

5️⃣ 索引体系(B+树核心结构)

索引是MySQL性能优化的核心,其底层实现主要基于B+树结构。

B+树特点: - 非叶子节点只存索引 - 叶子节点存数据 - 叶子节点之间链表连接

相比B树与哈希结构,B+树在范围查询与磁盘IO优化方面更具优势。

  • 哈希索引:适合等值查询
  • B树:数据分散存储
  • B+树:范围查询最优

6️⃣ 锁机制(并发控制核心)

MySQL通过锁机制解决并发访问冲突问题,主要包括行锁与表锁。

  • 行锁:锁定单行数据
  • 表锁:锁定整张表
  • 共享锁:读锁(select ... lock in share mode)
  • 排他锁:写锁(select ... for update)
⚠️ 间隙锁与临键锁是解决“幻读问题”的关键机制

在RR隔离级别下,MySQL通过间隙锁防止范围插入,从而避免幻读。

7️⃣ 事务机制(ACID实现)

事务是保证数据一致性的核心机制,其具备ACID四大特性。

A:原子性(全部成功或失败)
C:一致性(数据状态合法)
I:隔离性(事务互不影响)
D:持久性(提交不可丢失)

其中隔离性通过锁机制与MVCC共同实现,是MySQL并发能力的核心基础。

8️⃣ SQL优化与执行性能

SQL优化是数据库性能调优的重要手段,核心方向是减少IO与避免索引失效。

  • 避免select *
  • 深分页优化(id > 方式)
  • 避免like前置%
  • 减少or与<>操作
⚠️ 索引失效会导致全表扫描,是性能下降的主要原因

9️⃣ 日志系统(MySQL三大日志)

MySQL通过日志系统保证数据一致性与可靠性。

  • binlog:主从复制与数据归档
  • redo log:崩溃恢复(物理日志)
  • undo log:事务回滚与MVCC
执行顺序: 写undo log → 写redo log → 提交 → 写binlog

🔟 总结

MySQL的核心本质是一个围绕“数据一致性与高并发性能”设计的复杂系统。

🎯 核心结论:MySQL通过“索引优化查询 + 锁控制并发 + MVCC提升读性能 + 日志保证可靠性 + 主从复制实现扩展”构建完整数据库体系。

相关文章

  • SQL语句

    表B:id,name,code,detail四个字段均有值;表A id,name,code,detail其中id,name有值并且与表B相对应,code,detail值为null。现在将B表中的code和detail值更新到A表中。

    NEW个对象 2024-12-25

  • 索引失效的问题如何排查?

    当然是使用explain关键字来分析SQL了。 当用explain关键字来分析SQL的时候,主要查看key、type、extra这三个关键字。 如果key是NULL、type是ALL,extra是use where,那么就是没有走索引。

    NEW个对象 2025-01-09

  • MySQL核心知识体系(基于XMind整理版)

    MySQL作为典型的关系型数据库,其核心能力围绕“存储、索引、事务、锁、日志、复制”六大模块展开。 在高并发系统中,MySQL不仅是数据存储工具,更是整个业务系统稳定性的基石。

    NEW个对象 2026-06-08

NEW个对象 NEW个对象
JAVA是世界上最好的语言