sql - 在 Postgres 中加速慢速 SELECT DISTINCT 查询的解决方案

标签 sql database postgresql database-optimization

查询基本上是:

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/

相关文章:

sql - OLE DB 提供程序 "ADSDSOObject"尚未在 Azure SQL 托管实例中注册

sql - 使用 ROW_NUMBER() OVER 十进制列时未确定的排序顺序

postgresql - 执行动态 sql 未设置在 psql 中找到

postgresql - 在 PostgreSQL 中存储 ISO 8601 持续时间

sql - 如何让此查询输出表中的多个值

database - 命名空间表上的 Doctrine 关系

mysql - 这样安全吗?这在 MYSQL 中可以吗?

javascript - 使用 Knex 仅增加 postgres 数据库中的最低条目

sql - 同一INSERT时另一列中序列列的引用值

sql - DateAdd 列导致溢出