索引的作用,聚簇索引和主键与那些之间的区别

时间:2012-12-07 03:04:54

标签: join indexing primary-key clustered-index

m student studying DB.. I was studying big physical three join operations(nested loop, sort merge, and hash join). and I don知道索引如何与上述联接一起使用..

这里我有疑问..

究竟什么是索引......?它只是关键吗?它的数据结构是什么? 它是真实记录的地址和索引属性名称的组合吗?

我想知道有关索引如何用作“密钥”的详细信息。

据我所知,聚集索引与实际表排序索引匹配。

和非聚集索引是指定表的实际匹配列的'地址指针'的索引。

从上面开始,

然后我必须这样思考..

然后当我们创建表并将一个属性指定为主键时, 它的作用是什么?

主键成为默认的聚簇索引? 并且物理上表的行数据按主键排序?

或磁盘上的实际顺序只是插入行数据时的顺序? 而主键只是用于表之间没有创建像index这样的效果的关系吗?

然后当我们创建聚簇索引时,磁盘上的物理顺序是重新排序的吗?

在这里,我真的无法理解......

如何说“使用索引,当我们想要找到满足特定谓词的数据行时会更快,因为它已经排序了”

(当我研究排序合并连接时,我发现了。 来源从每两个表中说,如果他们有索引,他们不需要排序阶段,可以直接合并..)

index在创建索引时使表排序? 我不知道为什么它说索引就像'魔法工具'..

谢谢你。我知道我的写得非常分散, 但我太困惑了,这些正是我头脑中的想法......

  • 当涉及到排序合并连接时,

如果他们说“从索引表到真实数据表,它会通过rowid访问”, ROWID是什么意思? 与主键或其他东西不同的是????

非常感谢你......

*对于Oracle,MySQL?

2 个答案:

答案 0 :(得分:0)

在关系数据库中,主键是默认索引。假设r1 ....在表T1中使用C1 .....到Cn列,主键为P1,然后P1是默认索引。但是,如果你想搜索表T1的C5列,那么如果那列C5没有被索引,那么搜索算法会搜索r1 ...到rn的每一行,每列C1 ...... Cn.Let如果搜索时间单行是T1,然后是时间搜索表的单列= T1 / Cn(近似值)。但是,当你索引表T1的C5列时,那么搜索引擎算法的执行顺序首先搜索主键然后是索引键,所以C5值的访问时间相对于时间小于T1 / Cn。何时选择索引。 case1:如果在C1到Cn列的表T1的列内如果列CX的访问率的可能性对于时间段间隔p1 ... pn的列CX更高,那么CX是第一个索引的候选者,那么在你可以为其他人设计索引。

答案 1 :(得分:0)

我认为您的问题是我网站上的答案:

特别是您应该对以下章节感兴趣:

但如果你看一下完整的TOC,那可能是最好的: