例えばdate型(つまりYYYY-MM-DDのような日付)のカラムを持つテーブルがあるとする。ちゃんとインデックスも張ろう。 create table test_table (id int4, dt date) create index dt_index on test_table (dt) このテーブルから「水曜日のレコードだけを抽出したい」とする場合、 select * from test_table where date_part('dow', dt) = 4 (注:dowとは曜日のことでゼロが日曜で6が土曜) などと書くが、このときdt_indexインデックスは使用されずにSeq Scan(つまりフル走査)が走ってしまう。つまり遅い。なぜなら、dt_indexはYYYY-MM-DDのような日付の値のインデックスだから。 そこで関数インデックスの登場。 create index dt