如下,如果要找27,正常情况是要先打 5 6 8 13 22 27 ,找六次。
如果用了一级索引,就是 5 8 22 27 ,相比原始数据,是间隔的比如不要5和8中间的6, 有了这一级索引,就只要找四次,
如果还觉得次数多,就在原来一级索引再加一级,也是间隔的,5和22中单的8不要,
这样, 5 22 27,这样就只找三次了,同时在查找到27时,由二级跳到了一级,又跳到原始那一级,这样跳来跳去,就叫跳表。其实有点二叉树感觉,但比二叉树简单。二分法搞法。
插数据 删数据 Redis为什么不用b+树?MySQL为什么不用跳表?1. 跳表范围查找比红黑树效率更高:
2.
这个问题在于 Redis是直接操作内存的并不需要磁盘io而MySQL需要去读取io,所以mysql要使用b+树的方式减少磁盘io,B+树的原理是 叶子节点存储数据,非叶子节点存储索引,每次读取磁盘页时就会读取一整个节点,每个叶子节点还有指向前后节点的指针,为的是最大限度的降低磁盘的IO;因为数据在内存中读取耗费的时间是从磁盘的IO读取的百万分之一
而Redis是 内存中读取数据,不涉及IO,因此使用了跳表,跳表明显是更快更简单的方式。



