说到B+Tree首先要说一下B-Tree
B-Tree(Balance Tree 多路平衡查找树)是一种平衡的多路搜索树数据结构,用于实现高效的查找、插入和删除操作。B树的特点是每个节点可以存储多个关键字,并且节点的孩子数目与关键字数目相同。通过控制节点的关键字数目和孩子数目之间的关系,B树可以在保持平衡的前提下减少树的深度,提高查找效率。B树常用于实现磁盘上的索引结构,适用于持久化存储和范围查询操作。MyISAM数据库引擎默认的索引方式就是B-Tree。
B+Tree是在B树基础上进行改进和优化的数据结构。一般来说,B+树与B树的差异主要存在于叶子节点的结构和指针。B+树的叶子节点构成了一个双向链表,可以按照顺序遍历和范围查询。此外,B+树的内部节点仅存储关键字信息,而不存储实际数据。数据只存在于叶子节点。B+树的优势在于提高了查询效率、范围查询性能和磁盘IO的利用率。InnoDB数据库引擎默认使用的就是B+树索引。
按照使用逻辑区分的索引可以查看我的MySQL索引概述,里面有详细描述。以下图片仅包含部分
按照实际使用来区分
1.单列索引
顾名思义,单列在数据库中就是一个字段,意思就是给数据库表中的某个字段添加索引。
2.组合索引
组合索引是将数据库表中的多个字段组合成一个索引,相比于单列索引,组合索引可以提供更高效的查询性能。当查询条件涉及到组合索引中的多个列时,数据库可以利用组合索引更快地定位到匹配的数据行。
可以组合多个字段创建一个索引。