【发布时间】:2015-07-27 00:46:17
【问题描述】:
我在表 acs_objects 中有 350 万行,我需要检索具有仅年份格式且不同的列 creation_date。
我的第一次尝试:180~200 Sec (15 Rows Fetched)
SELECT DISTINCT to_char(creation_date,'YYYY') FROM acs_objects
我的第二次尝试:35~40 Sec (15 Rows Fetched)
SELECT DISTINCT to_char(creation_date,'YYYY')
FROM (SELECT DISTINCT creation_date FROM acs_objects) AS distinct_date
有什么方法可以加快速度吗? -“我需要在 ADP 网站中使用它”
【问题讨论】:
-
你试过
extract吗? -
您是否为该列编制索引?
-
@Rogier 我还不知道如何使用索引。
-
@Leonel 好吧,你不要“使用”它。但我可以想象如果列被索引,排序会更快,这可以提高性能。在我的 MySQL 表(325.000 行)上,索引后性能提升为 +/- 20%。
-
extract(year FROM creation_date)上的索引对于这个特定的查询来说确实很好,而且速度很快,但它可能会对表的其他用途产生负面影响。
标签: sql postgresql distinct aggregate postgresql-performance