【发布时间】:2014-04-13 15:27:13
【问题描述】:
我有大约。 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对象保存到内存中,所以只需要在第一行调用数据库?
【问题讨论】:
标签: performance mongodb mongoid querying mongoid4