MySQL核心知识体系(基于XMind整理版)
🚀 MySQL核心知识体系(基于XMind整理版)
1️⃣ MySQL整体架构认知
MySQL作为典型的关系型数据库,其核心能力围绕“存储、索引、事务、锁、日志、复制”六大模块展开。 在高并发系统中,MySQL不仅是数据存储工具,更是整个业务系统稳定性的基石。
从工程角度来看,MySQL的设计目标是:在保证数据一致性的前提下尽可能提升并发性能。
2️⃣ 主从复制与高可用架构
主从复制是MySQL高可用架构的基础,通过binlog实现数据同步。 主库负责写操作,从库负责读操作,从而实现读写分离。
执行流程如下:
→ 生成binlog
→ dump线程发送日志
→ 从库IO线程接收
→ 写入relay log
→ SQL线程执行重放
双主复制虽然提升可用性,但也带来了数据冲突问题,因此在生产环境需谨慎使用。
3️⃣ 存储引擎对比(InnoDB vs MyISAM)
MySQL最核心的设计之一是存储引擎插件化,其中InnoDB是默认引擎。
- MyISAM:不支持事务,表锁,查询快但不安全
- InnoDB:支持事务,行锁,MVCC,高并发能力强
InnoDB的核心优势在于:事务 + 行级锁 + MVCC,使其能够支撑高并发系统。
4️⃣ MVCC机制(多版本并发控制)
MVCC是InnoDB实现高并发的核心机制,通过“数据版本链”实现读写不冲突。
读取分为两种模式:
- 快照读:读取历史版本,不加锁
- 当前读:读取最新数据,会加锁
MVCC的本质是通过undo log维护版本链,从而实现“读写互不阻塞”。
5️⃣ 索引体系(B+树核心结构)
索引是MySQL性能优化的核心,其底层实现主要基于B+树结构。
相比B树与哈希结构,B+树在范围查询与磁盘IO优化方面更具优势。
- 哈希索引:适合等值查询
- B树:数据分散存储
- B+树:范围查询最优
6️⃣ 锁机制(并发控制核心)
MySQL通过锁机制解决并发访问冲突问题,主要包括行锁与表锁。
- 行锁:锁定单行数据
- 表锁:锁定整张表
- 共享锁:读锁(select ... lock in share mode)
- 排他锁:写锁(select ... for update)
在RR隔离级别下,MySQL通过间隙锁防止范围插入,从而避免幻读。
7️⃣ 事务机制(ACID实现)
事务是保证数据一致性的核心机制,其具备ACID四大特性。
C:一致性(数据状态合法)
I:隔离性(事务互不影响)
D:持久性(提交不可丢失)
其中隔离性通过锁机制与MVCC共同实现,是MySQL并发能力的核心基础。
8️⃣ SQL优化与执行性能
SQL优化是数据库性能调优的重要手段,核心方向是减少IO与避免索引失效。
- 避免select *
- 深分页优化(id > 方式)
- 避免like前置%
- 减少or与<>操作
9️⃣ 日志系统(MySQL三大日志)
MySQL通过日志系统保证数据一致性与可靠性。
- binlog:主从复制与数据归档
- redo log:崩溃恢复(物理日志)
- undo log:事务回滚与MVCC
🔟 总结
MySQL的核心本质是一个围绕“数据一致性与高并发性能”设计的复杂系统。
上一篇:如何保证缓存与数据库一致性?
下一篇:什么是索引下推?
相关文章
-
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