HSQLDB 索引和多列约束

Posted

技术标签:

【中文标题】HSQLDB 索引和多列约束【英文标题】:HSQLDB indices and multi-column constraints 【发布时间】:2011-02-28 23:24:51 【问题描述】:

手册说“索引不应重复 PRIMARY KEY、UNIQUE 或 FOREIGN 键约束的列,因为这些约束中的每一个都会自动创建索引。”我不清楚这是否也适用于多列约束的各个列。假设我对列 (A,B) 有唯一约束,并且我打算在 B 上进行选择,我需要在 B 上建立索引吗?

【问题讨论】:

【参考方案1】:

引用的部分来自第 4 章。答案可以在第 2 章中找到:“n HyperSQL 2.0,多列索引将加快索引前 n 列包含连接或值的查询。你需要除非您使用仅搜索列子集的查询,否则不要在这些列上声明其他单独的索引。”因此,在我的场景中,我需要在 B 上添加一个额外的索引,但我可以通过将唯一性约束设置为 (B,A) 而不是 (A,B) 来避免这种需要。

【讨论】:

以上是关于HSQLDB 索引和多列约束的主要内容,如果未能解决你的问题,请参考以下文章

HSQLDB:奇怪的“唯一约束或索引违规”,从CSV读取数据

多列约束是为每列还是统一索引创建索引?

HSQLDB 无法删除未找到的外键约束对象

HSQLDB 和唯一约束

HSQLDB 内存设置的 HSQLDB 约束违规和 SQL 查询日志

建表的约束