MongoDB如何正确中断-韩国代理ip-正在创建的索引详解

这篇文章主要给咱们介绍了关于MongoDB如何正确中断正在韩国代理ip创立的索引的相关资料,文中经过示例代码介绍的非常详细,对咱们的学习或者作业具有必定的参阅学习价值,需求的朋友们下面随着小编来一起学习学习吧

咱们在运用 MongoDB 的时候,会出现需求给一个现已存在的大调集的某个字段添加索引的情况。

索引分为前台索引和后台索引,对应到 pymongo 中创立索引的代码:

import pymongo
handler = pymongo.MongoClient().yourdb.yourcol
# 前台索引
handler.create_index(‘字段名‘)
# 后台索引
handler.create_index(‘字段名‘, background=True)

如果调集里边有许多数据,并且你运用的是前台索引,那么此刻,创立索引会把这个调集锁起来,一切对这个调集的写入操作都会挂起。直到索引创立完结停止。如果运用的是后台索引,那么创立索引的过程不会影响数据写入。

但有时候,本来想创立后台索引,却忘记加 background=True参数。此刻怎么办?由于大调集创立索引有时候或许需求好几个小时,挂起的写入数据会堆积在内存里边,把内存撑爆。

此刻,千万不要重启 MongoDB,由于重启今后,之前没有完结的索引创立操作,仍然会主动启动继续创立。

正确的做法是杀掉创立索引的进程。

此刻,咱们能够在 MongoDB Shell 或者 Robo 3T里边操作。

这里以 Robo 3T为例,首先翻开对应的调集,如下图所示:

然后把指令栏里边的内容修改为:

1db.currentOp()

返回的内容如下图所示:

创立索引的进程,能够在参数里边看到类似于

1″lockType”: “write”

这样的字字段。在它附近,能够找到一个字段叫做 opid。

然后在指令栏输入指令:

1db.killOp(opid)

杀掉进程。

然后重新创立后台索引即可。

共有 0 条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注