对于稀疏索引不是很理解

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

AKA_酒精过敏的帅哥

2020-05-06

图片描述
稀疏索引的理解是指向一个块,不确定具体的数据是哪一个。但是在图中稀疏索引存储的是指向一个表的指针还是指向这个表里的某一条数据的指针?如果是指向某一条特定的数据那不是密集索引嘛?图中所示每一个主键索引的btree的叶子节点都存储了一个指向特定的一条数据的地址,那为什么是稀疏索引?是不是应该理解为叶子节点中存储的是指向一个完整的表(多条数据)。

写回答

1回答

翔仔

2020-05-06

同学好,  MyISAM索引文件和数据文件是分离的,索引文件仅保存记录所在页的指针(物理位置),通过这些地址来读取页(一页里面可以存储很多行的数据),进而读取被索引的行,你可以看到,图里面只是一个形象的比喻,可以看看下面的数据的第一行记录,很明显偏移值并不是连续的。

0
2
翔仔
回复
慕田峪1119561
如果针对数据量大而言,是可以这样理解的,但如果就几千几百行数据,差别不是很大,而且因为有缓存,所以基本速度上没区别
2021-07-27
共2条回复

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

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

8442 学习 · 1872 问题

查看课程