首页 > 解决方案 > 数据库表可以在列的函数上建立索引吗?

问题描述

数据库索引可以位于列的函数上,还是必须精确地位于列本身的内容上而无需任何更改/调整/计算?

简单的例子:

如果transactions表包含指定交易日期时间的列(例如2020-12-13 12:58:59),如果我们只想索引2020-12-13交易的日期(例如),是否需要创建另一列(仅包含日期),或者可以在日期时间列的函数上创建索引?

标签: databasepostgresqldatabase-indexes

解决方案


Postgres 实际上支持函数索引。例如,我们可以定义:

CREATE INDEX idx ON transactions (cast(ts_col AS date));

推荐阅读