稀疏索引不理解

来源:3-7 密集索引和稀疏索引的区别

Licrates

2020-07-17

翔仔老师好,请问稀疏索引的设计目的是什么,如果稀疏索引所在的列有重复元素怎么办呢?还有稀疏索引和密集索引的区别是什么?老师讲的是密集索引直接把数据存放到叶子节点,但是稀疏索引只是存放的地址。那还有其他区别吗?比如说系数索引不是对应的每一行,而是只有部分行被索引到吗?如果是部分行,怎样选取呢?为什么要选取这部分而不是其他部分呢?疑问有点多,望老师解答,百度实在是找不到答案才问老师的,百度上的图全是老师这两个图。

写回答

1回答

翔仔

2020-07-17

同学好,这个问题可以从以下角度来考虑,

稀疏索引和密集索引都是聚集索引;聚集索引是指数据是按照一定的顺序存储在磁盘上的,存放的顺序就是索引的顺序,所以聚集索引可以一次查询出数据,而不是像非聚集索引一样需要二次查询去获取数据;  密集索引是指每一个数据都对应一个检索的值,而稀疏索引是一个检索的值会对应多个连续的数据,稀疏索引查询时需要先找到点再去内部找对应的值。明白了这个我想同学应该能明白稀疏索引存在的意义了吧? 就是能够比密集索引占用更少的空间,而且插入删除比密集索引的开销也小,因为它不需要重排索引项


0
9
伊文Code
回复
Licrates
你的是对的,我查了很多资料,老师应该是搞错了,不过涉及知识点这么多,他这种在业界呆了这么久的人还能记得就不错了哈哈哈哈
2021-06-02
共9条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程