gpt4 book ai didi

sql - "to_char()"在 PostgreSQL 中是否比 "BETWEEN"使用更多的 CPU

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

我正在寻找以下语句之间对处理器最友好的 SQL 语句。

SQL 应该在两种情况下返回:"last_time_hit" 字段是今天的记录数。

声明 1:

SELECT COUNT(*) 
FROM chrono
WHERE to_char(last_time_hit, 'YYYY-MM-DD') = to_char(CURRENT_TIMESTAMP, 'YYYY-MM-DD')

声明 2:

SELECT COUNT(*) 
FROM chrono
WHERE last_time_hit BETWEEN CURRENT_DATE AND CURRENT_DATE - interval '1 second'

最佳答案

从某种意义上说,是的。第二个查询可以使用 last_time_hit 上的索引,这可以使查询运行得更快。即使在这种情况下没有索引,在可用的其他情况下使用 BETWEEN 也是一个好习惯。

一般来说,函数的使用排除了索引的使用——基于表达式的索引除外。 (在第一种情况下,Postgres 可能会对索引进行全面扫描;这比扫描表效率稍高,但不是您通常在使用索引时获得的巨大胜利。)

关于sql - "to_char()"在 PostgreSQL 中是否比 "BETWEEN"使用更多的 CPU,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36414624/

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