首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB在db.collection.createIndex()上没有响应

MongoDB在db.collection.createIndex()上没有响应
EN

Stack Overflow用户
提问于 2015-03-18 04:52:12
回答 1查看 1.7K关注 0票数 1

目前,我正在使用mongodb作为我的大数据项目。我在Centos 7服务器上安装了mongodb,内存为32 to,连接到12 to。到目前为止,这是我的数据库统计数据:

代码语言:javascript
复制
web-analyzer   43.933 GB
web-crawler   109.900 GB
web-crawler2  339.788 GB

问题是,每当我在五月集合上运行craeteIndex()时,我的mongodb最终总是没有响应(我不能执行db.collection.count()或'show dbs / collection‘命令),所以我使用CTRL + C终止了任务,之后我不能使用’杀死pid‘或'mongod关机’命令关闭mongodb,所以我必须重新启动我的服务器。有谁知道这个问题的原因,以及如何解决这个问题?

这是我的Mon神明服务的“top”命令输出:

运行查询之前的

代码语言:javascript
复制
 PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 2896 mongod    20   0  0.965t  99220  70964 S   0.3  0.3   0:00.33 mongod

运行后的createIndex()

代码语言:javascript
复制
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
 2896 mongod    20   0  0.965t 2.465g 2.411g S   2.7  7.9   0:26.03 mongod

谢谢您:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-18 08:06:38

默认情况下,生成索引是一种阻塞操作,它锁定数据库直到完成。当您已经收集了大量数据时,这可能需要很长时间。但是,您可以使用background:true选项在后台构建索引。

代码语言:javascript
复制
db.collection.createIndex({ keyfield: 1, otherkeyfield: 1 }, { background: true });

这将需要更长的时间,但数据库将继续响应,而你这样做。

有关创建索引的详细信息,请参阅请参阅文件

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29114389

复制
相关文章

相似问题

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