添加B-树索引为啥查询就会快

数据库添加B-树索引,查询就快。那么为啥添加索引就快

B-树索引的内部结构如下:

理解下图就明白了


image.png

B-树索引有两种类型的块: 用于查找的分支块(Branch Blocks)和用于存储值的叶块(Leaf Blocks)。
B-树索引的上层分支块包含指向下层索引块的索引数据。从结构上来说就像树一样,分支块就是树干树枝,而叶子就是叶块。
但是和树有区别的是B-树索引是平衡的,所有叶块都自动处于相同的深度
因此,在索引中从任意位置检索任意记录需要的时间基本上是相同的。可以理解为,如果走索引从中查询一条数据,那么我查找1W条数据和查询100w条数据的速度是一样的。
最底层的叶块包含每个被索引的数据值,和一个相应的用来定位实际行的rowid。根据分支块,找到被索引的数据值,再找到对应的rowid,再从rowid取出对应的数据,就起到了快速查找数据的目的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容