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 条评论