唯一与非唯一索引
Posted
技术标签:
【中文标题】唯一与非唯一索引【英文标题】:Unique vs non-unique index 【发布时间】:2013-12-11 09:37:49 【问题描述】:我的表使用 DML 保存了近 40+ 百万条记录。
想知道这些唯一或非唯一索引中的哪一个是更好的实施选择。提供更好的性能。
环境:Oracle 11g
【问题讨论】:
这取决于您的要求。以及列中的数据类型。 【参考方案1】:如果可能,请使用唯一索引。否则,使用非唯一索引。
换句话说,如果您可以使用唯一索引,那么您应该这样做。如果出于任何原因可能需要记录重复数据,您也别无选择。
如果保证索引是唯一的,Oracle 可以执行非唯一索引无法实现的某些查询计划优化 - 例如,如果使用唯一索引来探测特定值,Oracle 可以停止处理进一步的索引找到匹配项后立即阻止。
【讨论】:
我有一个表格,在“and”条件下搜索了两列。这两个值的组合不能在表中再次出现,但是我没有给出唯一的约束。对它们使用唯一索引还是非唯一索引更好? @RachitGupta:无论您在候选键中有一列还是多列,答案都没有什么不同。【参考方案2】:这完全取决于表中数据的类型,如果它具有唯一性的数据
high 然后使用 B-tree 否则使用 Bitmap 索引。
【讨论】:
以上是关于唯一与非唯一索引的主要内容,如果未能解决你的问题,请参考以下文章
SQL SERVER数据库 唯一索引 非唯一索引 聚集索引 非聚集索引 之间区别