【发布时间】:2022-08-18 23:32:07
【问题描述】:
想象一下,我有一个包含 DateCode 和 AddressCode 的复合主键的表。 我想将该表与仅在 AddressCode 上的另一个表连接起来。 我知道 DateCode 与 AddressCode 结合会有一个索引,因为那是主键。我是否还应该在此表中仅使用 AddressCode 建立索引,以便仅使用 AddressCode 作为外键有效地连接到其他表?这就是我在 MySQL 中所做的,尽管我不确定 Microsoft SQL Server 是否能以某种方式更好地自动处理这种情况。
-
不,不是每个引用都需要索引,复合也需要复合
-
你能改写你说的话吗?在这种情况下我是否需要额外的索引?
-
是的,您需要为您引用的一列添加索引
-
另一方面,这是一个明确的句子,谢谢!
-
取决于您的复合 PK 是如何定义的。如果是
(DateCode, AddressCode),那么该PK 不提供任何对仅在AddressCode上查找有用的排序。如果它被定义为(AddressCode, DateCode),那么该索引可用于通过地址代码进行搜索或在另一个按地址代码排序的行源上合并连接
标签: sql sql-server