我有许多全局应用程序设置存储在数据库中的一个名为“settings”的表中。它有三列:id,key,value。在DB中高效地存储/检索Rails应用程序的全局设置
现在我们假设我有一个产品清单列出了30种产品。显示这些产品中的每一个需要从设置表中检索特定设置“交换率”。我做到这一点的方式是向应用帮助程序添加了一个函数“exchange_rate”,该函数用键“exchange rate”查找设置行并检索值。
现在你可能会问什么?嗯,真的没什么,它工作得很好,但是当我按照开发服务器日志,我注意到每个请求有这些条目的30:
CACHE(0.0ms)选择settings
* FROM settings
WHERE(settings
key
='。 EXCHANGE_RATE')LIMIT 1
CACHE(0.0ms)选择settings
。* FROM settings
WHERE(settings
。key
= 'EXCHANGE_RATE')LIMIT 1
它看起来非常丑陋和杂波我的日志。原因很明显:数据库条目被检索了30次。它似乎没有任何数据库负载,因为它说CACHE,所以不应该有任何性能问题(或者有 - 我不知道)。
我的问题是:它是“更干净”,更合理的检索这个全局变量(汇率)一次,然后将它保存在某处(在哪里?),这样我就不会看到这些看起来多余(虽然缓存)数据库请求?
这是一个很好的答案,谢谢。你认为有一种简单的推广方法,所有的设置都是这样加载的,而不必为每个设置单独的函数? – 2011-02-15 11:14:18