我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 正在)使用它的原因
您需要一个基于函数的索引:
CREATE INDEX my_table_epoch_idx ON my_table (extract(EPOCH FROM created_at));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
658 次 |
| 最近记录: |