发布
社区首页 >问答首页 >rails 4应用程序中的Mongoid查询太慢

rails 4应用程序中的Mongoid查询太慢
EN

Stack Overflow用户
提问于 2014-06-03 17:38:08
回答 2查看 1.4K关注 0票数 1

我在mongoid (4.0.0 alpha1)中使用rails 4。问题在于,当我尝试在控制器中获取记录时,使用

代码语言:javascript
代码运行次数:0
复制
Model.where(:status => 'Active')

时间太长了(大约10秒)。当我试图在控制台中查询记录时,也会出现同样的问题。集合几乎有400+记录。

但是在mongodb控制台中获取记录

代码语言:javascript
代码运行次数:0
复制
db.collection.find({status: "Active"})

是快速的。

蒙古国有什么问题吗?有什么建议可以改善rails中的查询响应时间吗?

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-29 07:15:55

这一问题主要是由于嵌入式文档的大尺寸造成的。修正了只加载所需字段的问题,如

代码语言:javascript
代码运行次数:0
复制
Model.only(:name,:created_at)

代码语言:javascript
代码运行次数:0
复制
Model.without(:heavy_embedded_document_name)

此外,我们还修改了我们的数据库结构,以减少嵌入式文档和对象的大小。

票数 8
EN

Stack Overflow用户

发布于 2014-06-03 17:41:43

确保status有一个索引。您可以在MongoDB控制台中创建索引:

代码语言:javascript
代码运行次数:0
复制
db.collection.ensureIndex( { status: 1 } )

或在蒙古人

代码语言:javascript
代码运行次数:0
复制
class Person
  include Mongoid::Document
  field :status

  index({ status: 1 })
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24021572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档