如何通过实例学习理解InnoDB索引机制?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3037个文字,预计阅读时间需要13分钟。
关注公众号【程序员白泽】,带你走进一个不一样的程序员/学生党+前端+面试的时刻,在第三面问到MySQL索引相关知识,并给出了一些SQL语句分析索引执行情况。
前言关注公众号,带你走进一个不一样的程序员/学生党
前阵子面试的时候,在第三面问到了MySQL索引相关的知识点,并且给出了一些SQL语句分析索引的执行情况。所以今天这篇文章给大家讲讲索引,结合一些案例分析一下一个SQL查询走索引时涉及到的最左前缀原则。
在讲解最左前缀原则之前,先复习一下MySQL索引的重要基础知识(下面都将基于InnoDB存储引擎下的索引规则)
索引类型 主键索引InnoDB存储引擎使用B+树建立索引,主键索引的非叶子结点存放主键字段的值,通过主键中的字段构建B+树,叶子结点存放对应主键的整一条记录的信息(因此主键索引也称为聚集索引),每张表只能建立一个主键索引(聚集索引) 。
辅助索引辅助索引(Secondary Index),也叫做二级索引,也是通过B+树建立,与主键索引的唯一不同之处在于,叶子结点存放的是对应行的主键值,而不是行数据 (因此也叫做非聚集索引,获取主键值之后,需要再次去主键索引表中查询该主键对应的记录,获取其叶子结点存储的记录内容,相当于要搜索两张索引表)
举个例子这里给出一张表,id字段为主键索引,age字段为普通索引,然后插入一些数据,然后给出InnoDB为其维护的两个逻辑上的索引文件结构。
本文共计3037个文字,预计阅读时间需要13分钟。
关注公众号【程序员白泽】,带你走进一个不一样的程序员/学生党+前端+面试的时刻,在第三面问到MySQL索引相关知识,并给出了一些SQL语句分析索引执行情况。
前言关注公众号,带你走进一个不一样的程序员/学生党
前阵子面试的时候,在第三面问到了MySQL索引相关的知识点,并且给出了一些SQL语句分析索引的执行情况。所以今天这篇文章给大家讲讲索引,结合一些案例分析一下一个SQL查询走索引时涉及到的最左前缀原则。
在讲解最左前缀原则之前,先复习一下MySQL索引的重要基础知识(下面都将基于InnoDB存储引擎下的索引规则)
索引类型 主键索引InnoDB存储引擎使用B+树建立索引,主键索引的非叶子结点存放主键字段的值,通过主键中的字段构建B+树,叶子结点存放对应主键的整一条记录的信息(因此主键索引也称为聚集索引),每张表只能建立一个主键索引(聚集索引) 。
辅助索引辅助索引(Secondary Index),也叫做二级索引,也是通过B+树建立,与主键索引的唯一不同之处在于,叶子结点存放的是对应行的主键值,而不是行数据 (因此也叫做非聚集索引,获取主键值之后,需要再次去主键索引表中查询该主键对应的记录,获取其叶子结点存储的记录内容,相当于要搜索两张索引表)
举个例子这里给出一张表,id字段为主键索引,age字段为普通索引,然后插入一些数据,然后给出InnoDB为其维护的两个逻辑上的索引文件结构。

