一.什么是索引?
索引是一种数据结构;
目的: 帮助 MySQL 高效获取数据;
实现方式: 通过特定的算法(如二分法等)
二.为什么需要索引?
-
减少磁盘I/O操作(B+树索引为例)
B+树索引在磁盘上数据页的基础上,重新定义了一种数据结构,(可以称之为目录页),记录了主键 + 对应数据页地址。下图为例
假如说B+树索引有三层,那从上到下依次是:
根节点:记录了主键 + 目录页页码
中间节点:记录了主键 + 数据页页码
叶子节点:记录了具体行信息通过这种方式,如果查询id = 20的行,只需要执行3次磁盘I/O操作,就可以定位到该行所在的数据页。