在数据库中存储数组以防止数据库在Rails中命中

时间:2013-06-11 03:20:32

标签: ruby-on-rails database optimization

我正在使用acts_as_taggable gem,它有一个方法tag_list,它生成一个标签数组,但需要一个SQL调用。我一直在进行研究优化,并且很好奇,如果将这个列表作为数组存储在数据库中,以防止在我只需要标记名称时需要SQL调用。我知道数据库中的数组不是好设计,但它最终会阻止查询?

每次显示程序(标记的内容)时,我都想显示标记名称列表。除了他们的名字,我什么都不需要。

我是否因为避开数据库而过于热心,或者这对提高网站效率有很大帮助?

1 个答案:

答案 0 :(得分:1)

是的,你过分热心。

如果在数据库中放入一个数组 - 您仍然需要从数据库中获取它。这两个sql调用之间的时间差可以忽略不计 - 并且数组反序列化可能会使它变慢。

另外--Rails会自动缓存sql-查询,所以如果它是相同的,它就不会打扰进行sql调用。

如果你真的想加快速度 - 为什么不缓存包含标签的页面片段呢?