【发布时间】:2020-04-27 12:20:42
【问题描述】:
我有一个包含两个 WHERE 子句的查询。看起来像这样:
SELECT m
FROM Media m
WHERE m.userid = :id
AND m.timestamp = (SELECT MAX(mm.timestamp)
FROM Media mm
WHERE mm.userid = :id
AND mm.source IN :sources
AND mm.timestamp < :date)
我想知道如果这个查询使用一个索引会更快,还是应该为每个WHERE 子句创建两个单独的索引?喜欢:
- 第一个索引
WHERE = (userid, timestamp) - 第二个索引
WHERE = (userid, source, timestamp)
编辑:
我创建了 2 个索引。
- 1 -
(userid, source, timestamp) - 2 -
(userid, timestamp)
当我分析查询时,它总是显示用于查询的第二个索引。
【问题讨论】:
标签: postgresql indexing