我有大约。Mongoid 数据库中有1000 万个Article
对象。大量的Article
对象使得查询非常耗时。
如下例所示,我正在注册每周(例如,从现在起 700 天......从现在起 7 天,从现在起 0 天)数据库中有多少文章。
但是我每做一次查询,时间消耗就会增加,Mongoid的CPU使用率很快就达到了+100%。
articles = Article.where(published: true).asc(:datetime)
days = Date.today.mjd - articles.first.datetime.to_date.mjd
days.step(0, -7) do |n|
current_date = Date.today - n.days
previous_articles = articles.lt(datetime: current_date)
previous_good_articles = previous_articles.where(good: true).size
previous_bad_articles = previous_articles.where(good: false).size
end
有没有办法将Article
对象保存到内存中,所以只需要在第一行调用数据库吗?