相关疑难解决方法(0)

是否可以在 Postgres 的索引中使用稳定函数?

我一直在研究一个项目,并意识到我必须在几个查询的 WHERE 子句中调用一个函数。性能并不可怕,但我很想改进它。所以我查看了索引文档,其中提到:

索引字段可以是根据表行的一列或多列的值计算得出的表达式。

惊人的。所以我尝试创建一个索引:

CREATE INDEX idx_foo ON foo_table (stable_function(foo_column));

并收到一个错误:

错误:索引表达式中的函数必须标记为 IMMUTABLE

然后我阅读了关于函数波动率类别的内容,其中有关于稳定波动率的内容:

特别是,在索引扫描条件中使用包含此类函数的表达式是安全的。

根据措辞“索引扫描条件”,我猜这并不意味着实际的索引。那么它是什么意思呢?是否可以在索引中使用稳定函数?或者我们必须一路走下去并确保它可以作为一个不可变的函数工作?

我们使用的是 Postgres v9.0.1。

postgresql postgresql-9.0

3
推荐指数
1
解决办法
1007
查看次数

标签 统计

postgresql ×1

postgresql-9.0 ×1