我知道模型是否有has_many关联,我们可以使用'counter_cache'。Rails有没有提高无关联模型计数查询性能的方法?
但是,如果模型没有关联,我可以使用哪种方法来提高计数性能?
我看着Google,但没有找到任何有用的资源。
我知道模型是否有has_many关联,我们可以使用'counter_cache'。Rails有没有提高无关联模型计数查询性能的方法?
但是,如果模型没有关联,我可以使用哪种方法来提高计数性能?
我看着Google,但没有找到任何有用的资源。
我不认为有这样的事情“计数器缓存”的红宝石阵列或枚举。但是,如果您遇到性能问题,则可以自己创建一个。
你可以在某个地方存储一个整数,当你从你的数组中推入/弹出元素时,你可以递增/递减整数。
谢谢。我不熟悉SQL。如果我添加一列来存储总数的整数,并获取最后一个值,我会看到它会创建一个SQL查询,如'SELECT'lyrics。“* FROM”lyrics“ORDER BY”lyrics“。”“id”DESC限制1“。我想问一下,如果比运行'SELECT COUNT(*)FROM'lyrics''SQL Query更好? – user3087000
计数查询将比'select *'执行得更好 –
不确定选择计数(*)会比使用LIMIT选择*更快。我只是对这个“Ebook.benchmark {100.times {Ebook.first.id}}”和“Ebook.benchmark {100.times {Ebook.count}}”进行了基准测试,它看起来像第一个,相当于“ SELECT'ebooks'。* FROM'ebooks' LIMIT 1' is faster。 – Abdo
我仍然没有很好地回答你的问题,但我建议查看模型缓存上的这个轨道转换。
如果没有has_many关联,你会计算什么?你能提供一个例子吗? – Abdo
我想这样做,因为我猜这会提高性能。但是我对SQL不熟悉,所以我问是否可能。 – user3087000