稠密索引和稀疏索引
在学习kafka的底层存储架构的时候看到了稀疏索引的概念。不明所以,就去查询了下
基本概念
-
稠密索引:在密集索引中,数据库中的每个搜索键值都有一个索引记录。这样可以加快搜索速度,但需要更多空间来存储索引记录本身。索引记录包含搜索键值和指向磁盘上实际记录的指针。
-
稀疏索引:在稀疏索引中,不会为每个搜索关键字创建索引记录。此处的索引记录包含搜索键和指向磁盘上数据的实际指针。要搜索记录,我们首先按索引记录进行操作,然后到达数据的实际位置。如果我们要寻找的数据不是我们通过遵循索引直接到达的位置,那么系统将开始顺序搜索,直到找到所需的数据为止。
使用场景
在Innodb引擎中,主键使用的是稠密索引,其他都使用的是稀疏索引。
优缺点
- 稠密索引会占用更多的空间,但是检索速度更快
- 稀疏索引占用的空间较少,但是检索速度慢