gpt4 book ai didi

postgresql - 在数据库上实现大规模调度程序

转载 作者:可可西里 更新时间:2023-11-01 11:24:19 25 4
gpt4 key购买 nike

我们有一个包含数千万行表的 Postgres 数据库。我们还有一个在这些行上运行并查询特定 Assets 的调度程序(应用程序代码)。通常我们需要的是 30 天前的元素。

我们开始扩展,调度程序非常慢。

保持良好性能的最佳扩展方法是什么?使用不同的数据库?雷迪斯? ES?对 Postgres 进行分区?

谢谢!

最佳答案

Usually what we need is 30days old items there.

那是您问题中真正相关的部分。如果使用得当,Postgresql 应该可以毫不费力地执行具有数千万行的简单 WHERE 查询。索引查找的成本呈对数增长。

暗中试一试:如果您对 WHERE 语句中的每一行执行日期计算,性能确实会很糟糕。例如:

SELECT * FROM my_data WHERE AGE(CREATED_AT) > INTERVAL '30 days';

...这是一个相当糟糕的主意。相反,计算一次截止日期,并在比较中静态使用它。

如果您的查询确实更复杂,您还可以查看expression indices。这对于上面的示例来说有点过分了,它会为所有数据修改操作增加一些开销,但会像上面的查询那样执行与静态变体一样的查询。

无论如何:EXPLAIN SELECT ... 是您的 friend ,发布它的输出将使您在这里成为更多 friend 。

关于postgresql - 在数据库上实现大规模调度程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52134817/

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