数据库存储与性能优化学习方向

数据库 · 让数据存得下、读得

业务跑得动靠应用,跑得稳靠数据库。这条轨道从 SQL 基础、B+ 树索引、执行计划到分库分表与缓存,把"慢"从根上治掉。

建议周期3-6 个月
难度梯度基础 → 资深
方向侧重存储 · 优化
INDEX & EXPLAIN

索引与执行计划 · 性能的命门

90% 的慢查询都能在索引和执行计划里找到答案。看懂 B+ 树,才看懂为什么这个索引没生效。

深入教程 →
数据库 B+ 树索引结构与执行计划 B+ TREE

看懂存储,才能调对性能

InnoDB 的数据按 B+ 树聚簇存储,二级索引存主键再回表。理解这套结构,索引设计才有依据。

B+ 树结构

只有叶子节点存数据,且叶子间用链表相连,范围查询天然高效,树高通常 3-4 层。

索引设计

最左前缀、覆盖索引、联合索引顺序,把高频查询的列组合放到一棵树上。

EXPLAIN

type、key、rows、Extra 四列定生死,看一眼就知道走没走索引、扫了多少行。

回表与覆盖

二级索引拿主键再回表是性能损耗点,覆盖索引能把这步直接省掉。

TWO CAMPS

MySQL vs PostgreSQL

关系型数据库的两条主流路线,选型前先想清楚业务要的是什么。

  • 安装部署简单,生态与文档极其成熟
  • InnoDB 引擎稳定,主从复制方案丰富
  • 互联网公司主流,运维工具链完善
  • JSON、窗口函数等新特性持续补齐
适用场景:电商订单、用户系统、内容管理,读多写少的中大型业务。
VS
  • SQL 标准遵循度极高,类型系统丰富
  • 复杂查询与 CTE、窗口函数表现优秀
  • 原生 JSONB、GIS、全文检索一应俱全
  • 事务实现严谨,MVCC 并发能力强
适用场景:数据分析、复杂报表、地理信息、需要强一致性的核心系统。
CORE KNOWLEDGE

六大核心知识卡

数据库不是只会写 SELECT 就够了,这六块是面试与实战的高频考点。

知识自检 →
01

SQL 基础

  • JOIN 类型与笛卡尔积陷阱
  • 子查询、CTE 与窗口函数
  • 聚合 GROUP BY 与 HAVING 过滤
02

索引优化

  • 最左前缀与联合索引顺序
  • 覆盖索引避免回表
  • 索引失效的常见场景排查
03

事务与锁

  • ACID 与四种隔离级别
  • MVCC 实现快照读
  • 行锁、间隙锁与死锁排查
04

分库分表

  • 水平拆分与分片键选择
  • 跨库 JOIN 与分布式 ID
  • ShardingSphere 落地方案
05

缓存 Redis

  • 五大数据结构与使用场景
  • 持久化 RDB / AOF 取舍
  • 穿透 / 击穿 / 雪崩应对
06

NoSQL

  • MongoDB 文档模型与适用边界
  • ES 倒排索引支撑全文检索
  • CAP 定理与选型权衡
OPTIMIZATION CHECKLIST

性能优化八条 checklist

线上慢了别慌,照着这张清单逐条排查,多数问题能定位到。

疑难问答 →
只查需要的列

杜绝 SELECT *,减少网络与内存开销,也更容易命中覆盖索引。

WHERE 走索引

避免在索引列上做函数运算或隐式类型转换,否则索引直接失效。

分页避免深翻

LIMIT 1000000,10 改用游标或延迟关联,别让数据库扫一堆丢掉。

大事务拆小

长事务持锁过久会阻塞并发,把非必要操作移出事务边界。

JOIN 表小驱动大

让行数少的表做驱动表,被驱动表的关联列务必建索引。

热数据加缓存

读多写少的高频查询前置 Redis,给数据库卸掉绝大多数读压力。

慢查询日志常开

配合 EXPLAIN 定期 review,新上线的 SQL 一定要过一眼执行计划。

字段类型克制

能用 INT 别用 VARCHAR,能用 TIMESTAMP 别用 DATETIME,存储与索引都更省。

把数据库吃透,后端才稳

系统教程配合面试真题,理论实战一起上。

看面试真题