首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两列只有复合PK的连接表中,我需要另一个索引吗?

在两列只有复合PK的连接表中,我需要另一个索引吗?
EN

Stack Overflow用户
提问于 2015-03-06 17:26:42
回答 2查看 451关注 0票数 0

请考虑以下几点:

tbl_Book

  • BookID PK int恒等式(1,1)

tbl_Author

  • AuthorID PK int恒等式(1,1)

tbl_BookAuthor

  • BookID FK int
  • AuthorID FK int

我有一个复合/复合主键on (BookID,AuthorID)。更具体地说,基于SSMS设计器的默认值:

  • 栏:(BookID ASC,AuthorID ASC)
  • 是独一无二的:是的
  • 类型:主键
  • 创建为群集:是

在任何时候,我是否需要对任何一个列(BookID、AuthorID)建立一个非聚集索引,或者当它仅作为复合键时,它是否与表中的这两列无关。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-03-06 17:42:41

如果对此表运行的唯一查询指定复合键的两个值(或仅指定第一个值),则不需要其他索引。我认为您可能需要另一个索引的唯一时候是,如果您只对复合键中的第二列进行查询(并且无法将第一列变为第一列,因为您也对该列进行了查询)。

简短的回答:事情应该像-现在一样好。

票数 0
EN

Stack Overflow用户

发布于 2015-03-06 18:26:37

在BookID上搜索很可能是一个索引搜索

对AuthorID (不包括BookID)的搜索将是索引扫描

如果你从来不去搜索第二个,那就无所谓了。

对作者的搜索似乎更有可能,所以我会改变顺序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28904248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档