前言
面试官:MySQL索引的存储结构是什么?
面试者:是B+树。
面试官:为什么不是B树、二叉树、哈希表?
面试者:%……&(&……(懵逼中)
面试官:MySQL有哪几种索引?
面试者:主键索引、唯一索引、联合索引、普通索引。
面试官:什么是聚簇索引、非聚簇索引、覆盖索引、索引下推、最左原则?
面试者:%……&(&……(懵逼中)
接下来我们就通过了解B+树去全面解决这几个问题。
一、B+树的数据结构
树的概念我的就赘述了,其他文章都写的非常清楚了。
我们要注意的一个点:InnoDB和MyIsam在存储的区别。
InnoDB
主键索引的存储结构是:叶子节点存储了主键值和其他字段数据值
其他索引的存储结构是:叶子节点存储了索引值和主键索引值
区别是其他索引存的是主键索引值
MyIsam
索引的存储结构是:叶子节点存储了主键值和数据记录的地址
主键索引和其他索引存储结构是一样的
说B+树之前先说说B树,B+树是在B树基础上优化来的。
B树索引格式</