【问题标题】:Storing array in database to prevent database hit in Rails在数据库中存储数组以防止 Rails 中的数据库命中
【发布时间】:2013-06-11 11:23:01
【问题描述】:

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

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

我是否过于热衷于避免使用数据库,或者这对提高网站效率有很大帮助?

【问题讨论】:

    标签: ruby-on-rails database optimization


    【解决方案1】:

    是的,你太热心了。

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

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

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

    【讨论】:

    • 我正在研究各种缓存以及限制 SQL 调用。我先把这个问题搁置几天,看看有没有其他答案,否则我会接受这个。
    猜你喜欢
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多