问题原因:
在加载新页面的时候,如下图代码,涉及到 Corpus.where(status: 1).sample,sample 函数是 rails 自带方法,作用是随机查询出一条数据,这样会在 16 万的数据查询一条出来,这样会导致页面加载很慢,请问大家,如何在 16 万或者更多的数据中随机查询一条数据,页面不会加载很慢,谢谢大家帮忙了
相关代码:
这个随机放到数据库层面来做就好了吧
# One record Corpus.order('rand()').take # Array Corpus.order('rand()').limit(1)
order by rand()
同一个 request 中会对 query 结果做缓存,也就是这个条 query 在一次请求中,多次调用,结果是一样的。
大体机制是,缓存的 key 是最后生成的语句,有更新、创建之类的操作,缓存会过期。
希望没记错。。。
非常谢谢您,问题解决了
非常谢谢您提供的思路
非常谢谢您提供的思路,谢谢
谢谢您的提醒,非常感谢