在已存在主键或唯一键约束的列上创建索引

时间:2017-05-19 13:16:26

标签: sql oracle database-indexes

我目前正在学习Oracle的索引。 在Oracle documentation中,可以找到以下内容:

  

虽然数据库在具有完整性约束的列上为您创建索引,但建议在此类列上显式创建索引。

这里有人可以告诉我这背后的理由吗? 如果数据库自动创建索引,为什么我们要明确地在这些列上创建另一个索引?

2 个答案:

答案 0 :(得分:1)

至少,如果您明确创建索引,则可以为其指定有意义的名称。如果您需要按名称引用索引,它将采用人类可读的形式。

请注意,您可以在USING INDEX子句中创建显式索引,同时创建约束。该文档有几个示例:https://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm#ADMIN11725

答案 1 :(得分:1)

我唯一的想法是那些自动创建的索引得到了一些奇怪的名称,要么生成为SYS%,要么从约束名继承名称。保留索引的一些命名约定

可能更好