MongoDB如何正确中断正在创建的索引详解_MongoDB

来源:脚本之家  责任编辑:小易  

我们在使用 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为例,首先打开对应的集合,如下图所示:

然后把命令栏里面的内容修改为:

db.currentOp()

返回的内容如下图所示:

创建索引的进程,可以在参数里面看到类似于

"lockType": "write"

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

然后在命令栏输入命令:

db.killOp(opid)

杀掉进程。

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

到此这篇关于MongoDB如何正确中断正在创建的索引的文章就介绍到这了,更多相关MongoDB中断正在创建的索引内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:MongoDB索引使用详解MongoDB的基础查询和索引操作方法总结pymongo给mongodb创建索引的简单实现方法MongoDB中唯一索引(Unique)的那些事MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划MongoDB中创建索引需要注意的事项mongodb处理中文索引与查找字符串详解深入理解MongoDB的复合索引关于MongoDB索引管理-索引的创建、查看、删除操作详解MongoDB数据库中索引(index)详解

  • 本文相关:
  • mongodb3.4集群搭建实战之高可用的分片+副本集
  • yum源安装mongodb图文教程
  • java操作mongodb查询的实例详解
  • ubuntu中安装mongodb及执行一些简单操作笔记
  • mongodb批量将时间戳转为通用日期格式示例代码
  • mongodb数据查询方法干货篇
  • mongodb aggregate 运用篇个人总结
  • mongodb快速入门笔记(七)mongodb的用户管理操作
  • mongodb 删除添加分片与非分片表维护
  • mongodb查询字段没有创建索引导致的连接超时异常解案例分享
  • mongodb 每次都要创建索引吗
  • mongodb 何时使用索引,使用怎么样的索引
  • mongodb怎么修改创建的索引查询语言
  • 怎样给 mongodb 整个数组作为一个唯一项建立唯一索引
  • mongodb索引添加后怎么使用
  • mongodb java 在没有插入数据之前可以创建索引吗
  • mongodb索引真的影响插入修改吗
  • mongodb为什么没创建索引,他就有索引
  • mongodb创建索引很慢怎么办
  • mongodb 索引是什么数据结构
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mongodb索引使用详解mongodb的基础查询和索引操作方法总结pymongo给mongodb创建索引的简单实现方法mongodb中唯一索引(unique)的那些事mongodb性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划mongodb中创建索引需要注意的事项mongodb处理中文索引与查找字符串详解深入理解mongodb的复合索引关于mongodb索引管理-索引的创建、查看、删除操作详解mongodb3.4集群搭建实战之高可用的分片+副本集yum源安装mongodb图文教程java操作mongodb查询的实例详解ubuntu中安装mongodb及执行一些简单操作笔记mongodb批量将时间戳转为通用日期格式示例代码mongodb数据查询方法干货篇mongodb aggregate 运用篇个人总结mongodb快速入门笔记(七)mongodb的用户管理操作mongodb 删除添加分片与非分片表维护mongodb查询字段没有创建索引导致的连接超时异常解案例分享mongodb常用操作命令大全mongodb各种查询操作详解mongodb数据库插入、更新和删除操mongodb 数据库操作--备份 还原 mongodb插入数据的3种方法mongodb中使用distinct去重的简单mongodb整库备份与还原以及单个c浅谈mysql和mariadb区别(mariadbmongodb查询操作限制返回字段的方mongodb 实现远程连接mongodb数据库实验之增删查改mongodb自增id实现方法mongodb数据库foreach循环遍历用法详解mongodb中用sharding将副本集分配至服mongodb 实现主从读写分离实现的实例代码mongodb replica set 添加删除节点的2种方mongodb的分片集群基本配置教程基于mongodb数据库索引构建情况全面分析mongodb与mysql的操作对比表及区别介绍记一次mongodb性能问题(从mysql迁移到mon
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved