我有一张table,我在table上查询 varchar
列。它可以是极少数可能的值之一(这是一个简单的javaenum)。
sql:
SELECT *
FROM activation
WHERE registration = '1312313'
AND status = 'WORKING';
我跑过来了 EXPLAIN ANALYZE EXECUTE
https://explain.depesz.com/s/whuq,因为问题似乎出在按状态过滤中。上面有一个索引 registration
列。
在网站上加个索引合理吗 status
还是这里杀伤力太大了?如果是,如何优化给定的查询?
1条答案
按热度按时间t2a7ltrp1#
对于此查询,您需要对显示在
where
条款。把最严格的标准放在第一位通常是个好主意(在这里,我理解这是registration
):如果你总是用同样的方法过滤
status
值,则部分索引可能至少同样有效,而且成本更低: