数据库必知词汇:索引

索引是为了加速对表中数据行的检索而创建的一种分散的存储结构。索引是针对表而建立的,它是由数据页面以外的索引页面组成的,每个索引页面中的行都会含有逻辑指针,以便加速检索物理数据。

索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行。这样可以使对应于表的SQL语句执行得更快,可快速访问数据库表中的特定信息。

当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID快速找到表中对应的记录。

索引的主要作用是快速取数据、保证数据记录的唯一性、实现表与表之间的参照完整性,以及在使用ORDER by、group by子句进行数据检索时,利用索引可以减少排序和分组的时间。索引的缺点在于需要占物理空间,以及当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。

根据数据库的功能,可以在数据库设计器中创建四种索引,即单列索引、唯一索引、主键索引和聚集索引,具体解释如下:

  • 单列索引:最基本的索引类型,没有唯一性之类的限制。
  • 唯一索引:不允许其中任何两行具有相同索引值的索引。
  • 主键索引:数据库表中一列或列组合(字段)的值唯一标识表中的每一行,该列称为表的主键。
  • 聚集索引:也称为聚簇索引,在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引,即如果存在聚集索引,就不能再指定CLUSTERED 关键字。

资料来源:
陆慧娟.数据库原理与应用:科学出版社,2006
陶程仁.数据库原理及应用:西南交通大学出版社,2011
佟勇臣.数据库原理与应用:中国水利水电出版社,2012
周屹 李艳娟.数据库原理及开发应用(第二版):清华大学出版社,2013
王珊 萨师煊.数据库系统概率(第5版):高等教育出版社,2014

上一篇:Kafka实战-Storm Cluster


下一篇:数据库必知词汇:主键约束(PRIMARY KEY)