在SQL中索引聚合函数

时间:2017-12-06 12:25:08

标签: sql postgresql indexing

我有以下SQL查询,我想使用索引进行优化。

select    ean,   count(nif)
from    produto   P,   fornece_sec   F where    P.ean   =   F.ean
group   by    P.ean
having    count(nif)   >   1

使用nif索引有意义吗?

1 个答案:

答案 0 :(得分:0)

首先,学习如何使用显式join语法正确编写查询:

select P.ean, count(nif)
from produto P join
     fornece_sec F 
     on P.ean = F.ean
group by P.ean
having count(nif) > 1;

然后 - 假设ean中的所有fornece_sec也在produto中 - 您不需要join,因为您正在通过{聚合{ {1}}密钥。因此,您可以将其简化为:

join

对于此版本的查询,您可以使用覆盖索引:select F.ean, count(F.nif) from fornece_sec F group by F.ean having count(F.nif) > 1;