0

我最近遇到了一个 DB2 表,它具有三个不同的唯一索引。

Index 1 (Columns: A, B, C)
Index 2 (Columns: A, B, C, D)
Index 3 (Columns: A, B, C, D, E)

最具体的一个是实际的唯一索引吗?或者唯一性的定义是否因 DB2 使用哪个索引来访问表而有所不同?

我有点困惑,因为索引 1 表明只要我对 A、B、C 的值是唯一的,我就可以对 D 和 E 有重复的值。但是索引 3 表示 A、B、C、D , E 是唯一的,所以我毕竟不能有 D 和 E 的重复值吗?

4

1 回答 1

1

恰恰相反,唯一重要的唯一索引是索引 1(用于唯一性)。

我没有尝试过,但是为了访问目的,DB2 会使用更适合您正在执行的实际查询的索引。

例如,如果您查询 { A=1, B=2, C=3 } 它应该使用索引 1;如果您正在查询 {A =1, B=2, C=3, D=4 } 它应该使用索引 2,即使它可以只使用索引 1,但您不会看到任何性能提升。

于 2016-02-26T09:11:10.553 回答