1.1 在独立服务器上面建立索引

在独立服务器上面创建索引,可以在空闲时间于后台建立索引。

在后台建立索引,可利用background:true参数运行

>db.foo.ensureIndex({"somefield":1,{:background":true})

1、任何类型的索引均可在后台完成建立

2、前台建立索引耗时少,但是索引建立期间会锁定数据库,导致其他操作无法进行数据读写

3、后台建立索引期间,则会定期释放写锁,从而保证其他操作的运行

1.2 在副本集上建立索引

1、副本建立索引问题

如果集合较大,则会出现备份节点同时开始建立索引的情况。

突然间所有备份节点都无法被客户端读取了,同时可能也无法及时进行同步操作。

2、对于较大结合,推荐采用如下方式

(1)关闭一个备份节点

(2)将其作为独立的节点启动

(3)在这一服务器上建立索引

(4)重新将其作为成员加入副本集

(5)对每个备份节点执行同样的操作

3、对于主节点

(1)备份节点创建完索引后,于后台在主节点中建立索引

(2)关闭主节点,并执行以上步骤(1)-(4),像在备份节点一样,在主节点建立索引。该方式需要数据库停运一次,应权衡利弊进行选择。

1.3 在分片上建立索引

1.4 删除索引

使用dropIndexes命令指定索引名删除索引

查询system.indexes集合找出索引名,即使时自动生成的索引名,在不同驱动器键也会存在些差异

1、删除指定的单个索引

>db.runCommand({"dropIndex":"foo","index":"alphabet"})

2、删除集合中所有索引

>db.runCommand({"dropIndexes":"foo","index":"*"})

但是这种方法无法删除_id索引。只有删除整个集合才能删除掉该索引。

删除集合中的全部文档不会对该索引产生影响,新文档插入后索引仍可正常增加。

1.5 内存溢出杀手OOM Killer

可将MongoDB设置为不可被OOM Killer终止

MongoDB 建立与删除索引的更多相关文章

  1. mysql建立、删除索引及使用

    同步发布:http://www.yuanrengu.com/index.php/2017-01-13.html 一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少 ...

  2. MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划

    这篇文章主要介绍了MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划的相关资料,需要的朋友可以参考下 一.索引 MongoDB 提供了多样性的索引支持,索引信息被保存 ...

  3. paip.提升性能--- mysql 建立索引 删除索引 很慢的解决.

    paip.提升性能--- mysql 建立索引 删除索引 很慢的解决. 作者Attilax ,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blo ...

  4. oracle索引建立和删除

    1.多列建立索引 SQL> create index dex_index2 on dex(sex,name); Index created. SQL> select object_name ...

  5. mongodb建立索引

    创建索引 索引:以提升查询速度 语法:db.集合.ensureIndex({属性:1}),1表示升序,-1表示降序 具体操作:db.t255.ensureIndex({name:1}) db.t1.f ...

  6. mysql建立索引 删除索引

    建立索引 1.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE ...

  7. MYSQL索引的建立、删除以及简单使用

    一.前期数据准备 1.建表 CREATE TABLE `user` ( `uid` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAUL ...

  8. MySQL索引建立与删除

    #添加索引alter table 表名 add index 索引名称(列名1, 列名2);alter table 表名 add index 索引名称(列名1, 列名2, 列名3);alter tabl ...

  9. 【转载】8天学通MongoDB——第四天 索引操作

    这些天项目改版,时间比较紧,博客也就没跟得上,还望大家见谅. 好,今天分享下mongodb中关于索引的基本操作,我们日常做开发都避免不了要对程序进行性能优化,而程序的操作无非就是CURD,通常我们 又 ...

随机推荐

  1. 10分钟搭建一个小型网页(python django)(hello world!)

    10分钟搭建一个小型网页(python django)(hello world!) 1.安装django pip install django 安装成功后,在Scripts目录下存在django-ad ...

  2. AVR单片机教程——EasyElectronics Library v1.0手册

    更新:EasyElectronics Library v1.1手册 索引: bit.h delay.h pin.h tone.h pwm.h uart.h adc.h led.h rgbw.h seg ...

  3. Linux 进程控制

    分享知乎上看到的一句话,共勉: 学习周期分为学习,思考,实践,校正四个阶段,周期越短,学习效率越高. 前面讲的都是操作系统如何管理进程,接下来,看看用户如何进行进程控制. 1.进程创建 先介绍一下函数 ...

  4. 使用脚本将AspNetCore发布到IIS上

    首先你必须要了解的是,没有脚本的情况下,如何把AspNetCore的应用发布到IIS上. 大致分为这些步骤: 安装MS C++ 2015 x86&x64 安装正确版本的.NET Core Ru ...

  5. ubuntu 安装 Java 开发环境

    可以使用命令 -jre-headless 或者使用:   本文链接:https://blog.csdn.net/sangewuxie/article/details/80958611 本人的ubunt ...

  6. [BZOJ3681]Arietta(可持久化线段树合并优化建图+网络流)

    暴力建图显然就是S->i连1,i->j'连inf(i为第j个力度能弹出的音符),j'->T连T[j]. 由于是“某棵子树中权值在某区间内的所有点”都向某个力度连边,于是线段树优化建图 ...

  7. 封装函数(累计和、K型、金字塔)

    // 假设有个函数,只要传参数进去,就能统计累加的结果 function test($n){ if($n==1){ return 1; } return $n+test($n-1);}echo tes ...

  8. 音视频入门-08-RGB&YUV

    * 音视频入门文章目录 * YUV & RGB 相互转换公式 YCbCr 的 Y 与 YUV 中的 Y 含义一致,Cb 和 Cr 与 UV 同样都指色彩,Cb 指蓝色色度,Cr 指红色色度,在 ...

  9. 在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据)

    原文:在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决 ...

  10. 查看IIS错误日志

    部署在IIS中的程序,难免出现数据产生异常 在事件查看器中,可以看出来具体的错误信息,代码定位