gpt4 book ai didi

sql - 如何在具有重复值的列中添加索引以加快 postgresql 中的查询速度?

转载 作者:行者123 更新时间:2023-11-29 13:19:40 25 4
gpt4 key购买 nike

这是 Postgresql 中的表:

name, ts, value
A, 2017-05-28, 1
A, 2017-05-27, 5
A, 2017-05-26, 2
...
B, 2017-05-28, 9
B, 2017-05-28, 12
...

表的大小将超过 1000 万。我正在尝试执行 select count(distinct(name)) from "table"; 它花了我 240 多秒才结束。任何人都可以就优化此方案的方式提出一些建议,例如添加 Hive 之类的分区或添加索引(这需要是唯一的,但名称在多个记录中重复)。谢谢!

最佳答案

出于某种原因,Postgres 没有很好地优化count(distinct name)。 (有趣的是,Hive——它有一个非常不同的优化器——也有类似的问题。)

尝试以这种方式运行查询:

select count(*)
from (select distinct name
from t
) t;

我不认为索引会有帮助,但您始终可以尝试在 t(name) 上使用一个索引。

关于sql - 如何在具有重复值的列中添加索引以加快 postgresql 中的查询速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44229108/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com