我应该索引Oracle中的主键列吗?

Mik*_*yev 18 oracle indexing primary-key

我最近停止认为主键不是索引,它们是Unique和Null约束的组合.到目前为止,我从未为PK列创建索引.我的问题是,如果要在许多查询的WHERE部分中使用此列,我是否应该为PK列创建索引.

Dav*_*dge 23

Oracle将为您创建索引,或者可以使用现有索引.是否使用唯一或非唯一索引取决于您.

http://docs.oracle.com/cd/B28359_01/server.111/b28310/indexes003.htm#i1006566

主键本身不是索引,也不是唯一约束 - 它们都是约束.但是,索引用于支持它们.

唯一索引是相当不同的,因为它可以在没有唯一或主键约束的情况下存在,并且约束类型都不要求支持它的索引是唯一的.

  • 你好,我想问一个后续问题。如果主键有多个列,是为每个列创建索引还是只为所有列的组合创建索引?例如,如果我有主键(custno、orderno、date)并且我想要索引“orderno”,我是否需要仅在 orderno 上创建二级索引,或者是否已经有 Oracle 创建的二级索引,因为它是主键的一部分?我尝试搜索此内容但找不到明确的答案。提前致谢! (2认同)
  • @Rash8151 会自动为这些列创建单个索引。 (2认同)