MySQL索引为什么不用跳表,Redis为什么不用B+树
知识引入
在讲述问题之前,我相信来到这里的朋友一定都是事先了解过 B+ 树、跳表这两种数据结构了的。
所以下面介绍这两种数据结构的时候,只是整体描述一下,并不会细致地讲什么是 B+ 树,什么是跳表;毕竟咱们今天的主要内容并不是介绍数据结构。
什么是MySQL中的B+树?
- B+树一般由多个页、多层级组成,在MySQL中每个页 16 kb。
- 主键索引的 B+ 树的叶子结点才是数据,非叶子结点存放的是索引信息
- 上下层的页通过单指针相连
- 同一层级的相邻的数据页通过双指针相邻
B+ 树的大致图像如下:
什么是跳表?
跳表的结构就像是由单链表结构衍生出来的,但是它的效率却比普通的单链表高上很多
跳表的最底层是单链表,但是跳表也是具有多层级的
在普通的单链表中,不管要寻找什么元素&#x