CSNotesCSNotes
MySQL
Java
SSM
Redis
学习路线
TODO
实用工具
GitHub
MySQL
Java
SSM
Redis
学习路线
TODO
实用工具
GitHub
  • 第一章 SQL 语法

    • 一、MySQL 语法基础
    • 二、多表查询与笛卡尔积
    • 三、JOIN 类型与算法
    • 四、LIKE 通配符与正则
    • 五、GROUP BY/HAVING /窗口函数
    • 六、字段类型与选型
    • 七、约束、主键与 DDL 语法
    • 八、SQL 实用函数
    • 九、TRUNCATE
    • 十、数据建模范式
    • 十一、exists 子查询
    • 十二、select *
  • 第二章 SQL 执行

    • 一、一条建表语句是如何执行的?
    • 二、EXPLAIN 执行计划
    • 三、一条 DELETE 语句在干什么?
    • 四、EXPLAIN 各列的含义
    • 五、JOIN 执行算法
  • 第三章 存储结构

    • 一、字符集与 CHAR/VARCHAR 存储
    • 二、最大行大小 65535 bytes
    • 三、为什么 VARCHAR 上限是 16383?
    • 四、表、页与 Page Header 概念
    • 五、InnoDB 行格式 COMPACT
    • 六、磁盘空间管理器
  • 第四章 索引

    • 一、为什么是 B+ 树?
    • 二、B+ 树插入、分裂、合并的完整过程
    • 三、容量计算:一颗高度为 3 的 B+ 树能存多少条数据?
    • 四、索引分类(聚簇/二级/联合/覆盖)
    • 五、联合索引 + 最左匹配原则
    • 六、索引失效 7 大场景
    • 七、索引创建策略:三星索引法
    • 八、执行计划
  • 第五章 事务

    • 一、事务
    • 二、事务的本质(内核视角)
    • 三、MVCC 多版本并发控制
    • 四、死锁四条件
    • 五、一条 INSERT 语句背后在干吗?
  • 第六章 日志

    • 一、Redo Log 结构
    • 二、Undo Log
    • 三、预写日志 WAL(Redo/Undo)
    • 四、两阶段提交 2PC
    • 五、崩溃恢复
    • 六、三种刷盘组合性能与一致性 tradeoff
  • 第七章 锁

    • 一、锁

四、索引分类(聚簇/二级/联合/覆盖)

索引的本质=用额外 2~3 倍的存储空间,换查询 100~1000 倍的速度,B+ 树通过【树高只有 3~4 层(log n 深度)+ 叶子链表范围查询 + 页对齐 + 内部节点只存指针不存数据】四个设计,把百万行级别的查找从“读百万字节”压缩到“读几十字节 +3~4 次随机读页”

索引是帮助 MySQL 高效获取数据的数据结构。

索引用于快速查找具有特定值的行。如果没有索引,MySQL 必须从第一行开始,然后遍历整个表来找到相应行。表越大,成本就越高。如果表有相关列的索引,MySQL 就可以快速确定要在查找的位置,无需查看所有数据,这比顺序读取每一行要快的多。

(一)索引分类

主键索引

唯一的标识,主键不可重复,只能有一个列作为主键。

唯一索引

避免重复的列出现,唯一索引的列不能重复(NULL 可以多个)。

聚簇索引

提示

When you define a PRIMARY KEY on a table, InnoDB uses it as the clustered index. A primary key should be defined for each table. If there is no logical unique and non-null column or set of columns to use a the primary key, add an auto-increment column. Auto-increment column values are unique and are added automatically as new rows are inserted.

非聚簇索引

(二)什么是聚簇索引?

B+ 树的叶子结点存储的是完整的用户记录,也就是所有列的值(包括隐藏列)。

(三)什么是二级索引?

B+ 树的叶子结点存储的是某一列 + 主键的的值。

(四)什么是联合索引?

联合索引能减少扫描行数

(五)索引的代价

1. 空间代价

每建立一个索引,都要为它建立一颗 B+ 树。每一颗 B+ 树的每一个结点都是一个数据页,一个数据页会默认占用 16KB 的存储空间。

2. 时间代价

每当对表中的数据进行增删改操作时,都需要修改各个 B+ 树索引。

二、索引的基本原理

索引就相当于目录,方便查找书的内容。

编辑此页
上次更新: 2026/9/23 17:56
Prev
三、容量计算:一颗高度为 3 的 B+ 树能存多少条数据?
Next
五、联合索引 + 最左匹配原则