1、B+树索引
1)、B+树首先是有序结构,为了不至于树的高度太高,影响查找效率,在叶子节点上存储的不是单个数据,而是一页数据,提高了查找效率,而为了更好的支持范围查询,B+树在叶子节点冗余了非叶子节点数据,为了支持翻页,叶子节点之间通过指针连接;
2)、B+树是一个平衡的多叉树,从根节点到每个叶子节点的高度差值不超过1,而且同层级的节点间有指针相互链接;
3)、在B+树上的常规检索,从根节点到叶子节点的搜索效率基本相当,不会出现大幅波动,而且基于索引的顺序扫描时,也可以利用双向指针快速左右移动,效率非常高;
4)、在 Innodb存储引擎中如果通过主键来访问数据效率是非常高的,而如果是通过 Secondary Index 来访问数据的话, Innodb存储引擎首先通过 Secondary Index 的相关信息,通过相应的索引键检索到 Leaf Node之后,需要再通过 Leaf Node 中存放的主键值再通过主键索引来获取相应的数据行。MyISAM 存储引擎的主键索引和非主键索引差别很小,只不过是主键索引的索引键是一个唯一且非空 的键而已。而且 MyISAM 存储引擎的索引和 Innodb 的 Secondary Index 的存储结构也基本相同,主要的区别只是 MyISAM 存储引擎在 Leaf Nodes 上面出了存放索引键信息之外,再存放能直接定位到 MyISAM 数据文件中相应的数据行的信息&#x
MySQL索引 B+tree和hash那些事儿
最新推荐文章于 2023-12-26 09:05:16 发布
本文详细介绍了MySQL中B+树索引和哈希索引的工作原理及其优缺点。B+树索引适用于范围查询和有序操作,其叶子节点存储数据并相互连接,而哈希索引则适用于等值查询,通过哈希函数快速定位。然而,哈希索引不支持范围查询、排序和部分模糊查询。在选择索引类型时,应根据查询需求和数据特性进行考虑。
摘要由CSDN通过智能技术生成