【发布时间】: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