MyISAM的前缀压缩索引在索引块中的组织方式

Posted 不吃陈皮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyISAM的前缀压缩索引在索引块中的组织方式相关的知识,希望对你有一定的参考价值。

纯粹自己的理解,哪位大佬看到了还请指正。

首先贴一张《高性能mysql》中的一段话:

 

技术分享

这句话的意思是说,MyISAM使用b+树组织索引。也就是说无论索引压缩与否,组织方式一定是B+树。

下面再贴一张图片:

 

技术分享

这句话是说,因为索引块中的索引都被压缩成前面索引的压缩形式了,所以在【某一个节点】中,不能再使用二分查找法查找到对应的索引或者子节点的引用,只能在【这个节点】中逐个遍历。

在找到适合的位置的时候,则通过B+树继续向下寻找,由于B+树的是[ ... )的形式,如下图所示:

 

技术分享

所以,子节点中的第一个索引可以通过父节点知道,然后再在子节点中遍历该节点中的索引,以此类推。

以上是关于MyISAM的前缀压缩索引在索引块中的组织方式的主要内容,如果未能解决你的问题,请参考以下文章

MySQL索引

MySQL进阶实战4,MySQL索引详解,下篇

16.2.2 Space Needed for keys

MySQL中MyISAM与InnoDB的主要区别对比

ElasticSearch实战-FST有限状态转换算法(索引数据压缩算法)

ElasticSearch实战-FST有限状态转换算法(索引数据压缩算法)