mysql为何使用B+树作为索引
讲mysql innodb使用B+树作为索引的原因:https://juejin.cn/post/7081065180301361183
- 分析mysql数据特点:存储在磁盘,为了提升性能,需要尽量减少io操作
- 分析所有数据结构:线性、非线性;基础数据结构和衍生出的高级数据结构(数组、链表、hash、树、图;跳表、位图等)
得出 适合用树来存储索引,进一步分析了二叉树、二分查找树(bst)、自平衡二叉树(avl)、红黑树、到B树、B+树。
hash适合等值查询;b树是和等值,效率不稳定,范围查询适合用B+树。
数据库的随机插入、删除操作决定了不能使用线性结构、快速查找特定决定了不能用链表;最终选择 树 这种数据结构。