索引字段不必局限于物理表的实际字段列,还可以是一个基于一列或多列计算得出的函数或标量表达式。该特性极大地加速了基于数据计算结果的检索。
最典型的应用场景是加速大小写不敏感的模糊匹配:
CREATE INDEX test1_lower_col1_idx ON test1 (lower(col1));
在此之后,任何形如 WHERE lower(col1) = 'value' 的查询都可以直接命中该表达式索引,而无需在检索时对全表逐行调用函数。
WHERE lower(col1) = 'value'