Wikipedia形式:http://en.wikipedia.org/wiki/index_(Database)

一些数据库通过允许在函数或表达式上创建索引来扩展索引的功能。例如,可以在upper(last_name)上创建一个索引,该索引只能存储Last_name字段的上情况版本中的索引。有时支持的另一个选项是使用“过滤”索引,其中仅针对满足某些条件表达式的记录创建索引条目。灵活性的另一个方面是允许对用户定义的功能进行索引,以及由各种内置功能形成的表达式。

那些支持灵活索引的数据库是什么:

  • 在计算列上,例如:(Col1 + Col2) * 100
  • 过滤索引。
  • 索引用户定义的功能。

此功能的术语是什么?

有帮助吗?

解决方案

在Oracle中,它们称为基于函数的索引。

对于过滤,您可能会很棘手,并创建一个函数,如果过滤器匹配或null,则返回值。 nulls不存储在BTREE索引中,因此该索引基本上是过滤的。您只需要确保在查询中使用相同的功能。

我相信在SQL Server中,您可以创建一个计算的列并索引。

其他提示

SQL Server 2000+(至少)支持基于功能的列和计算列的索引。可以使用功能上的索引视图来复制有关功能的索引。

在某些条件下,但主要是围绕确定论(这可能是普遍的)

SQL Server 2008+已过滤索引。

Afaik,没有特殊的术语。他们只是索引。

据我所知,所有主要RDBS都支持此功能。我亲自在MySQL和PostgreSQL上使用了它,但是如果MSSQL和Oracle中没有使用,我会感到震惊。

不幸的是,我对此不知道任何特殊术语。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top