概念

前面讲的两种查询方法都是基于有序小量的基础上,但是数据集的增长速度一般都很迅速,如微博,日活可以达到上千万上亿条,这么多的数据,如果按照某个关键字进行排列是不现实的,通常都是按照先后顺序存储的。
对于这样的数据表,如何能够快速的查找到需要的数据呢?办法就是——索引

数据结构的最终目的是提高数据的处理速度,索引是为了加快查找速度而设计的一种数据结构。

所谓索引,就是把一个关键字与它对应的记录相关联的过程,一个索引由若干个索引项构成,每个索引项至少应包含关键字和其对应的记录在存储器中的位置等信息。

索引技术是组织大型数据库以及磁盘文件的一种重要技术。
索引按结构可分为:

  • 线性索引
  • 树形索引
  • 多级索引

所谓线性索引,就是将索引项集合组织为线性结构,也称为线性表。

线性索引我们重点学习:

  • 稠密索引
  • 分块索引
  • 倒排索引
稠密索引

稠密索引是指在线性索引中,将数据集中的每个记录对应一个索引项。

如下图所示:

10GB数据构建索引一般多大_10GB数据构建索引一般多大

稠密索引需要应对的是成千上万的记录,对于稠密索引这个索引表来说,索引项一定是按照关键码有序的排列。
索引项有序,也就意味着我们查找时可以使用折半查找、插值查找等有序查找技术,大大提高效率。
如果数据项比较小,稠密索引具有相当的优势。
如果数据项非常大,也就意味着索引项也必须和数据项的长度规模一样大,这样查找范围降低了效率。