【问题标题】:the role of index, clustered index and difference betw primary key with those索引、聚集索引的作用以及主键与那些的区别
【发布时间】:2012-12-07 03:04:54
【问题描述】:

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

我有问题..

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

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

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

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

从上面,

那我得这样想..

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

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

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

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

这里是我真的无法理解的东西......

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

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

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

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

  • 在排序合并连接方面,

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

非常感谢...

*如果是 Oracle、MySQL?

【问题讨论】:

  • 您尚未指定您所指的 DBMS。索引的细节以及如何使用索引来执行查询确实需要在特定软件的上下文中进行解释。不同的产品有不同的特点。请更具体。
  • 对不起,我认为该机制在所有情况下都是通用属性。如果是 Oracle 和 mySQL??

标签: join indexing primary-key clustered-index


【解决方案1】:

在关系数据库中,主键是默认索引。假设表 T1 中有 r1....to rn 行,C1.....to Cn 列,主键为 P1,那么 P1 是默认索引。但是,如果要搜索表 T1 的 C5 列,则如果该列 C5 没有索引,则搜索算法搜索从 r1...到 rn 的每一行,每列 C1 ....Cn.Let if time for search for单行是T1,那么搜索表的单列的时间=T1/Cn(近似)。但是,当你索引表T1的C5列时,搜索引擎算法的执行顺序是先搜索主键然后搜索索引键,所以C5值的存取时间相对于时间小于T1/Cn。何时选择索引。 case1:如果在表T1的列中从C1到Cn列,如果在时间段p1...pn的时间间隔内,列CX的列值访问率更高,则CX是索引的第一个候选对象,依此类推您可以为其他人设计索引。

【讨论】:

  • 主键然后是索引键?然后当它有额外的索引键时,某个关系的一个主键就变成了“关系标识符?”或者当索引存在时甚至不使用它? :)
【解决方案2】:

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

您尤其应该对以下章节感兴趣:

但最好看看完整的目录:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    相关资源
    最近更新 更多