【发布时间】:2012-12-07 03:26:14
【问题描述】:
是否可以为数据库中的特定列值生成索引?例如,我有一个名为status 的列,其值为{0,1,2,3},但最常调用状态2,因此我想专门索引该值。这可能吗?我想语法将类似于您可以像这样按降序索引的方式:
create index foo on table(bar desc);
我可能会看到这个工作:
create index foo on table(status 2);
这会在 SQLdeveloper 中针对 Oracle 数据库生成 missing right parenthesis 错误。
【问题讨论】:
-
与普通字段索引相比,这在什么时候会是一个好主意?为了节省空间?
-
@voithos 所以主要问题是我的值非常有限,但我只“关心”其中的一个子集。所以我一直在寻找最好/最有效的方法来为子集而不是值域构建索引。
-
节省空间是一个副作用,但它也可以用来避免索引非常常见的值,而基于索引的访问方法对这些值没有帮助。例如,如果 99.9% 的值是“N”,0.1% 是“Y”。
标签: sql performance oracle indexing