为什么MySQL的索引结构,采用了B+树,没有使用跳跃表呢?

我个人感觉,首先,跳跃表不适用于磁盘读取的场景,其二,跳跃表的查找效率不如B+树效率高,也不如B+树稳定。
不知道还有没有其他可补充的?

阅读 9.2k
3 个回答

嗯 我也认为 磁盘存取 ,和 查找效率 ,检索性能好 ,之前看过些 文章

B+树的页天生就和磁盘块对应,这应该是主要原因吧

db数据量比较大如果,db索引使用了跳跃表,那么

1.跳跃表的level太高,数据存储不紧凑,产生大量的空间浪费
2.插入的数据不会如b+树那么紧凑,数据的压缩,dump也会存在问题
2.查询会产生大量跨页IO
3.查询时候磁盘磁头无法对链表进行预读,会产生大量的随机IO,对磁盘的缓存不友好
4.无法实现聚集索引和覆盖索引,

个人总结,希望指出不足和错误!!!

推荐问题