本文主要介绍MongoDB如何正确中断正在创建的索引的相关信息。通过示例代码详细介绍,对大家的学习或工作有一定的参考学习价值。让我们和边肖一起学习。
当我们使用MongoDB时,我们需要向现有大型集合的某个字段添加索引。
索引分为前台索引和后台索引,对应于pymongo中创建索引的代码:
导入pymongo
handler=pymongo。MongoClient().yourdb.yourcol
#前景索引
汉德勒。create _ index('字段名')
#背景索引
汉德勒。create _ index('字段名' ',背景=真)
如果集合中有大量数据,并且您正在使用前台索引,此时,创建索引将锁定集合,并且对集合的所有写操作都将暂停。直到创建索引。如果使用后台索引,创建索引的过程不会影响数据写入。
但是有时候,我想创建一个背景索引,却忘了添加参数background=True。现在该怎么办?由于大型集合创建索引可能需要几个小时,挂起的写数据将在内存中累积,使内存爆满。
此时,不要重启MongoDB,因为重启后,之前没有完成的索引创建操作仍然会自动启动,继续创建。
正确的做法是终止创建索引的过程。
这一点,我们可以在MongoDB Shell或者Robo 3T中操作。
这里以Robo 3T为例,先打开对应的收藏,如下图所示:
然后将命令栏的内容更改为:
1db.currentOp()
返回的内容如下图所示:
创建索引的过程中,可以在参数中看到类似的东西
1'lockType': 'write '
这样的字场。在它附近,你可以找到一个叫opid的领域。
然后在命令栏中输入命令:
1db.killOp(opid)
扼杀进程。
然后重新创建背景索引。
本文介绍了MongoDB如何正确地中断正在创建的索引。有关MongoDB中断正在创建的索引的更多信息,请搜索脚本之家以前的文章或继续浏览下面的相关文章。希望大家以后多多支持脚本屋!