PostgreSQL支持函数索引,但函数必须是immutable的,变量不变时,索引本身不会变化的,所以函数当输入参数不变时,结果必须是永恒不变的。
做个实验,一次其中考试的成绩,有一张表存储学生信息,另一张表存储考试成绩,我们通过平均成绩搜索符合成绩的学生,可以使用索引吗?
使用函数索引,可以的。但是前提是,输入学号,得到平均成绩不能变化(当然成绩是不会变化的),不然数据变化,但索引不会刷新,则搜索的数据与实际不符。
例子:
create extension btree_gist;
学生信息表
create table t_user (id int8 primary key, name text);
成绩表