gpt4 book ai didi

sql - 如何提高 SQL 中平均方法的性能?

转载 作者:行者123 更新时间:2023-11-29 11:26:33 26 4
gpt4 key购买 nike

我遇到了一些性能问题,其中计算列平均值的 SQL 查询随着记录数量的增加而逐渐变慢。是否可以将索引类型添加到列中以加快平均计算速度?

有问题的数据库是 PostgreSQL,我知道特定的索引类型可能不可用,但我也对理论上的答案感兴趣,如果没有某种缓存解决方案,这甚至是可能的。

更具体地说,有问题的数据本质上是具有这种定义的日志:

table log {
int duration
date time
string event
}

我正在做类似的查询

SELECT average(duration) FROM log WHERE event = 'finished'; # gets average time to completion
SELECT average(duration) FROM log WHERE event = 'finished' and date > $yesterday; # average today

第二个总是相当快,因为​​它有一个更严格的 WHERE 子句,但总平均持续时间是导致问题的查询类型。我知道我可以缓存这些值,使用 OLAP 或其他东西,我的问题是天气是否有一种方法我可以完全通过数据库端优化(如索引)来做到这一点。

最佳答案

记录越多,计算平均值的性能总是越慢,因为它总是必须使用结果中每条记录的值。

如果索引包含的数据少于表本身,索引仍然可以提供帮助。为您想要平均值的字段创建索引通常没有帮助,因为您不想进行查找,您只想尽可能高效地获取所有数据。通常,您会将字段添加为查询已使用的索引中的输出字段。

关于sql - 如何提高 SQL 中平均方法的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4449679/

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