浅谈Mysql面试必问之-B+树索引

22 阅读1分钟

一.什么是索引?

索引是一种数据结构;

目的: 帮助 MySQL 高效获取数据;

实现方式: 通过特定的算法(如二分法等)

二.为什么需要索引?

  1. 减少磁盘I/O操作(B+树索引为例)
    B+树索引在磁盘上数据页的基础上,重新定义了一种数据结构,(可以称之为目录页),记录了主键 + 对应数据页地址。下图为例


    假如说B+树索引有三层,那从上到下依次是:
    根节点:记录了主键 + 目录页页码
    中间节点:记录了主键 + 数据页页码
    叶子节点:记录了具体行信息

    通过这种方式,如果查询id = 20的行,只需要执行3次磁盘I/O操作,就可以定位到该行所在的数据页。