gpt4 book ai didi

ruby-on-rails - 提高 24 小时返回相同结果的 SQL 查询的性能

转载 作者:行者123 更新时间:2023-11-29 12:04:59 25 4
gpt4 key购买 nike

在我的 Rails 应用程序中,我只执行 10 个唯一的 SQL 查询。但是,每个都需要很长时间(1 - 5 秒)。每个查询的结果仅每 24 小时更改一次。

有哪些解决方案可以提高性能?

我正在使用 Postgres 和 Ruby on Rails。

我应该在某处缓存查询结果吗?我应该使用“存储过程”(还不知道它们是什么)吗?还有什么我应该研究的吗?

最佳答案

我会像这样使用 Rails.cache:

def self.some_long_query_that_changes_every_day
Rails.cache.fetch ['some_cache_key'], expires_in: 12.hours do
self.where(field: value)
end
end

fetch 将从未过期的缓存中读取或进行数据库查询并使用该键将其存储在缓存中。

唯一棘手的部分是 expires_in 部分。根据数据更改的确切时间,您可能希望根据数据的存储时间来计算 expires_in

expire_in = Time.now.utc.end_of_day - Time.now.utc
Rails.cache.fetch ['some_cache_key'], expires_in: expire_in....

或类似的东西。

关于ruby-on-rails - 提高 24 小时返回相同结果的 SQL 查询的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28591974/

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