数据库中的索引文件

时间:2011-05-26 21:05:28

标签: database indexing relational-database

有人可以解释索引文件在数据库中的工作原理吗?

即主要辅助和聚集索引?我不明白的是,主索引用于数据库中的有序列,而辅助索引用于数据库中的无序文件。我可以通过订购索引文件来理解我们可以执行二进制搜索以更快地找到记录,但我想我得到的是当它处理已经排序的列时使用主索引的意义是什么?您是否可以不在列本身上应用优化的搜索算法,而不是创建主索引?

1 个答案:

答案 0 :(得分:0)

我假设您参考了您正在查看SQL Server的Clustered索引?据我所知,这是针对SQL Server的各种风格(例如Microsoft和Sybase)。有效的聚簇索引会使表成为有序表。表中的数据按聚集索引的顺序插入。其他RDBMS(例如Oracle,Informix等)不使用聚簇索引。

主索引是唯一索引。它是索引主键并强制唯一性的那个。每个表只能有一个主键(因此一个主索引),但是可以有更多的一个唯一列或列组合,因此我们有候选索引;其他唯一的索引不是主键。

二级索引不是我遇到的术语,但我相信(来自一个快速的谷歌)它是任何其他非主要索引。因此它可以是唯一的或不是唯一的。如果是唯一的,它是候选索引。

所以我们最终得到了

  1. 聚集索引
  2. 候选人指数
  3. 主要索引
  4. 二级索引
  5. 索引可以更多,例如,次要的,独特的和候选人。

    索引通过允许RDBMS更快地访问相关数据来加速数据访问(在某些情况下)。想象一下,我说你收我刀叉。你可能会猜到它是在厨房里然后开始通过抽奖来看。如果你有一个索引,说刀子在厨房的第二次抽奖中保存,你可以直接去抽奖并拿到刀。

    同样地,因为我们写了'select * from table col = 567',RDBMS知道去表查找数据。但是如果col被索引,则RDMBS可以直接到达'567'的位置并选择它而不必查看col中的每个值。