查询基本上是:
SELECT DISTINCT "my_table"."foo" from "my_table" WHERE...
假装我 100% 确定DISTINCT
查询的部分是它运行缓慢的原因,我省略了查询的其余部分以避免混淆,因为我主要关心的是不同部分的缓慢(不同的是总是缓慢的根源)。
有问题的表有 250 万行数据。此处未列出的目的DISTINCT
是必需的(因为我不想返回修改后的查询,而只是有关使不同查询在DBMS级别运行得更快的一般信息,如果可能的话)。
如何在DISTINCT
不更改 SQL 的情况下更快地运行(特别是使用 Postgres 9)(即,我无法更改传入的 SQL,但可以访问在数据库级别优化某些内容)?