查询基本上是:
SELECT DISTINCT "my_table"."foo" from "my_table" WHERE...
假装我 100% 确定查询的 DISTINCT
部分是它运行缓慢的原因,我省略了查询的其余部分以避免混淆,因为它是不同的部分我主要关心的缓慢(明显总是缓慢的根源)。
有问题的表有 250 万行数据。 DISTINCT
是 用于此处未列出的目的(因为我不想返回修改后的查询,而只是关于使不同查询在 DBMS 级别,如果 可能)。
如何在不更改 SQL 的情况下使 DISTINCT
运行得更快(特别是使用 Postgres 9)(即,我无法更改传入的 SQL,但可以在数据库中优化某些内容水平)?
最佳答案
通常,您可以通过使用 group by
来解决 distinct
问题,从而使此类查询运行得更快:
select my_table.foo
from my_table
where [whatever where conditions you want]
group by foo;
关于sql - 在 Postgres 中加速慢速 SELECT DISTINCT 查询的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6598778/