【发布时间】:2012-11-29 02:36:38
【问题描述】:
在我的 Rails 应用程序的某个时刻,我从缓存中检索了大量 ActiveRecord 对象。但是,这些记录中的一些可能已从数据库本身中删除,因为它们存储在缓存中,因此我循环记录并检查每条记录以查看它是否存在。这需要相当多的时间。有没有更有效的方法来做到这一点?
【问题讨论】:
-
@Danny - 你的评论有什么帮助?我不明白为什么有人会简单地说这真的很难,并认为它在任何方面都有远程帮助。你是说算了吧,重新设计你的代码?
-
@jimmcnamara - 感谢您的反馈!你说得对,我的评论不是特别清楚。我想补充的是认识到这是在编码中更难正确处理的事情之一,希望带有一点幽默感。
-
在从数据库中删除记录时(使用ActiveRecord回调)不能从缓存中删除相关对象吗?这样你就不必循环检查它是否存在。
-
我想你应该重新考虑你的数据库结构,如果这不可能,那么考虑“sphinx”或更好的“thinking sphnix”,它提供比活动记录更快的缓存!
标签: mysql ruby-on-rails database activerecord