我正在使用以下查询 WHERE
postgres 数据库中的条件:
WHERE extract(EPOCH FROM created_at) BETWEEN 1511132400 AND 1511737199
如何添加索引以便具有此条件的查询使用它?在created_at
上创建索引没有帮助,并且不使用索引。
目前EXPLAIN
对于这样的查询给出:
Filter: (date_part('epoch'::text, created_at) >= '1511132400'::double precision) AND (date_part('epoch'::text, created_at) <= '1511737199'::double precision)
(extract()
语句是由 Grafana 生成的,这就是我(或 Grafana 正在)使用它的原因
最佳答案
您需要一个function based index :
CREATE INDEX my_table_epoch_idx ON my_table (extract(EPOCH FROM created_at));
关于postgresql - 如何在postgresql中的extract()上添加索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47482202/