gpt4 book ai didi

ruby-on-rails - 最小化对 Rails 中数据库的调用

转载 作者:数据小太阳 更新时间:2023-10-29 08:34:48 25 4
gpt4 key购买 nike

我熟悉 memcached 和 eager loading,但似乎都无法解决我面临的问题。

我的主要性能滞后来自数据库中的数百个数据检索调用。棘手的是,在我有几个计算步骤之前,我不知道我需要检索哪一组用户。

我可以重构我的代码,但我想知道你们专家如何处理这种情况?我觉得应该是比较普遍的情况

def newsfeed

- find out which users i need
- retrieve those users via DB

- find out which events happened for these users
- for each of those events
- retrieve new set of users

- find out which groups are relevant
- for each of those groups
- retrieve new set of users

- etc, etc

end

最佳答案

非规范化是适合您情况的神奇密码。

有几种方法可以做到这一点:例如,将最后 10 个用户的 ID 存储在事件和组中。

或者创建一个新模型NewsFeedItem (belongs_to :parent, :polymorphic => true)。当用户参加事件时,创建一个包含非规范化信息的 NewsFeedItem,例如此用户名、他的个人资料照片等。避免对 user_events 和 users 进行二次查询。

关于ruby-on-rails - 最小化对 Rails 中数据库的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2888966/

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