Postgresql 9.5 比较日期与字符串时的性能比比较日期与日期时更快

问题描述 投票:0回答:0

我正在评估查询性能并得出一个奇怪的发现....

我正在尝试获取按列分组的今天创建的项目数

非常简单的 SQL 查询:

SELECT 
  count(id), total_units_sold 
FROM public.items x
WHERE 
  created_at > current_date
GROUP BY total_units_sold ORDER BY 1 DESC;

有趣的发现是,当我使用 current_date 作为字符串运行相同的查询时

2023-04-18
结果要快得多;

为了提供有关表大小的一些上下文,该查询中有

32.000
结果,整个表大约有
12.000.000
记录

使用

current_date
时的执行时间:

使用

2023-04-18
时的执行时间:

所以这里的问题是: 为什么会这样?

备注:

  • 该表未在
    created_at
    上建立索引,我目前无法更改它
  • 两个查询的 EXPLAIN 结果(抱歉隐藏部分)

解释结果

sql postgresql postgresql-9.5
© www.soinside.com 2019 - 2024. All rights reserved.