【发布时间】:2011-02-28 23:24:51
【问题描述】:
手册说“索引不应重复 PRIMARY KEY、UNIQUE 或 FOREIGN 键约束的列,因为这些约束中的每一个都会自动创建索引。”我不清楚这是否也适用于多列约束的各个列。假设我对列 (A,B) 有唯一约束,并且我打算在 B 上进行选择,我需要在 B 上建立索引吗?
【问题讨论】:
手册说“索引不应重复 PRIMARY KEY、UNIQUE 或 FOREIGN 键约束的列,因为这些约束中的每一个都会自动创建索引。”我不清楚这是否也适用于多列约束的各个列。假设我对列 (A,B) 有唯一约束,并且我打算在 B 上进行选择,我需要在 B 上建立索引吗?
【问题讨论】:
引用的部分来自第 4 章。答案可以在第 2 章中找到:“n HyperSQL 2.0,多列索引将加快索引前 n 列包含连接或值的查询。你需要除非您使用仅搜索列子集的查询,否则不要在这些列上声明其他单独的索引。”因此,在我的场景中,我需要在 B 上添加一个额外的索引,但我可以通过将唯一性约束设置为 (B,A) 而不是 (A,B) 来避免这种需要。
【讨论】: