在具有复合 PK 的仅两列连接 table 中,我需要另一个索引吗?

In a two column only junction table with compound PK, do I need another index?

考虑以下几点:

tbl_Book

tbl_Author

tbl_Book作者

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

在任何时候,我是否需要在任何一列(BookID、AuthorID)上使用非聚集索引,或者当它只是而且永远只是 [=51= 中的那两列时它不相关吗? ], 作为复合键。

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

简答:事情应该没问题。

对 BookID 的搜索很可能是索引搜索

对 AuthorID(没有 BookID)的搜索将是索引扫描

如果您永远不会只搜索第二个,那也没关系

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