0

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

在这里我有问题..

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

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

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

非聚集索引是对表中实际匹配列的“地址指针”进行排序的索引。

从上面,

那我得这样想。。

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

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

还是磁盘上的真正顺序只是插入行数据时的顺序?主键仅用于表之间的关系,不会像索引一样产生任何影响?

那么当我们创建聚集索引时,那么磁盘上的物理顺序会重新排序吗?

这里是我真的无法理解的事情......

怎么说“有了索引,当我们想找到满足特定谓词的数据行时,速度要快得多,因为它已经排序了”

(我在学习sort-merge join的时候发现。消息来源说从每两个表中,如果他们有索引,他们就不需要排序阶段,可以直接合并..)

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

谢谢你。我知道我写得很分散注意力,但我太困惑了,这些正是我脑海中的想法......

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

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

十分感谢...

*在甲骨文,MySQL的情况下?

4

2 回答 2

0

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

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

但最好看一下完整的 TOC:

于 2012-12-08T04:08:05.533 回答
0

在关系数据库中,主键是默认索引。假设表 T1 中有 r1....to rn 行,C1......to Cn 列,主键为 P1,那么 P1 是默认索引。但是,如果你想要搜索表 T1 的 C5 列,然后如果该列 C5 没有索引,则搜索算法搜索从 r1...到 rn 的每一行,每列 C1 ....Cn。如果搜索单行的时间是T1,则搜索表单列的时间=T1/Cn(近似)。但是,当你索引表T1的C5列时,搜索引擎算法的执行顺序是先搜索主键然后搜索索引键,所以访问时间C5的值在时间上小于T1/Cn。何时选择分度。情况1:

于 2012-12-07T03:32:34.820 回答