MySQL 索引默认使用的数据结构是 B+ 树,它是一种树形数据结构,通常用于数据库和文件系统中对数据进行索引。
B+ 树和 B- 树都是多路平衡查找树,它们的不同之处在于:
- 节点结构:B+ 树的非叶子节点只存储键值信息,而不存储数据,只有叶子节点才存储数据;B- 树的每个节点都存储键值和数据信息。
- 叶子节点:B+ 树的叶子节点之间通过一个指针串联起来,形成一个有序的链表,方便范围查询;B- 树的叶子节点没有这样的指针,需要通过中序遍历才能得到有序序列。
- 分裂合并:B+ 树的分裂和合并只针对叶子节点,不需要涉及非叶子节点,因此更高效;B- 树的分裂和合并需要同时调整非叶子节点,开销较大。
因此,在需要支持范围查询、大量数据插入和删除的场景下,B+ 树更加适用。