mongodb  索引建立问题

1.主从库索引建立不是同步建立:

MONGODB 2.6.6 版本,索引建立并不是同步的,而是主库建立完成后,从库接着建立索引。
    不知是3.0版本是否也一样,以前使用3.0版本也没去监控主从日志情况。这坑太大了。
    5:00开始建立,以为主库完成即OK.

官方说明:
        Background index build (page 491) allowed on secondaries. If you initiate a background index build on a
        primary, the secondaries will replicate the index build in the background.

Automatic rebuild of interrupted index builds after a restart.
        – If a standalone or a primary instance terminates during an index build without a clean shutdown, mongod
        now restarts the index build when the instance restarts. If the instance shuts down cleanly or if a user kills
        the index build, the interrupted index builds do not automatically restart upon the restart of the server.
        – If a secondary instance terminates during an index build, the mongod instance will now restart the interrupted index build when the instance restarts.
        To disable this behavior, use the --noIndexBuildRetry command-line option.

从库建立索引太长时间,如果中断从库建立索引,可以使用 --noIndexBuildRetry  参数重启。
    开始不知还有这个参数,直接在主库中删除前面建立的索引了。

网上看到别人是这样处理的,感觉也不错:

1.首先把 secondary server 停止,在取消 --replSet 参数,并且更改 MongoDB port 之后重新启动 MongoDB,这时候 MongoDB 将进入 standalone 模式;

2.在 standalone 模式下运行命令 ensureIndex 建立索引,建议使用 foreground 方式运行;

3.建立索引完毕之后关闭 secondary server 按正常方式启动;

下面是日志

primary:

2015-12-17T07:46:53.074+0800 [conn5530345]              Index Build(background): 27309700/27314911      99%
    。。。

slave:

2015-12-17T07:46:54.985+0800 [repl index builder 14]     building index in background
        2015-12-17T07:46:55.529+0800 [conn2154798] killcursors  keyUpdates:0 numYields:0 locks(micros) r:73 167ms
        2015-12-17T07:46:58.226+0800 [repl index builder 14]            Index Build(background): 4700/27314911  0%

2.TTL 索引删除数据,不是一次性删除超出日期的数据,而是一点点来的,

也是一样,以前一直以为是索引建立后,TTL 删除数据是一次性操作,那里知道几个小时也没删除完成,导致数据库
    压力一直很高。

后来只好先改名,再建立好新表后把数据插入进去。
    db.WebLog.renameCollection("WebLog_bak");
    db.WebLog.ensureIndex({MallID:1,Mac:1});
    db.WebLog.ensureIndex({CreateTime:-1},{expireAfterSeconds:3600*24*3*30});

var cursor=db.WebLog_bak.find({_id:{$gte:24600000}});
    while (cursor.hasNext()){
      nc=cursor.next();
      db.WebLog.insert(nc);
    };

mongodb 索引建立问题相关推荐

  1. mongodb 索引建立问题

    mongodb  索引建立问题 1.主从库索引建立不是同步建立: MONGODB 2.6.6 版本,索引建立并不是同步的,而是主库建立完成后,从库接着建立索引.     不知是3.0版本是否也一样,以 ...

  2. 使用NOSQL的MongoDB时建立索引需要注意的几点建议和Explain优化分析

    第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB. 第二,更重要的是,这些索引的建议对你的应用提高也是有限的. 对于应用的最佳索引策略应该基于很 ...

  3. MongoDB · 引擎特性 · MongoDB索引原理

    MongoDB · 引擎特性 · MongoDB索引原理 数据库内核月报 原文链接 http://mysql.taobao.org/monthly/2018/09/06/ 为什么需要索引? 当你抱怨M ...

  4. MongoDB索引实战技巧

    为什么80%的码农都做不了架构师?>>>    本文内容源自Kyle Banker 的 MongoDB In Action一书.主要描述了MongoDB索引相关的一些基础知识和使用技 ...

  5. MongoDB 索引-9

    MongoDB 索引 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常低的,特别在处理大 ...

  6. MongoDB索引原理和具体使用

    1. MongoDB 索引是用来干嘛? 索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录. 这种扫描全集合的查询效率是非常 ...

  7. MongoDB索引策略和索引类型

    1. MongoDB索引策略和索引类型–简介 MongoDB是一个开放源代码,面向文档的跨平台数据库,它使用C ++开发,并且是最流行和使用最广泛的NoSQL类型数据库之一. 它可在具有键-值对的类J ...

  8. 学习 | MongoDB 索引和排序

    小小又开始学习了,这次学习的内容是索引和排序. 索引 先给users集合插入两条记录,然后用users集合来进行索引管理的演示: > user1={"name":" ...

  9. MongoDB 索引(一)

    索引支持在MongoDB中高效执行查询.如果没有索引,MongoDB必须执行集合扫描,即扫描集合中的每个文档,以选择那些匹配查询语句的文档.如果查询存在适当的索引,MongoDB可以使用该索引来限制它 ...

最新文章

  1. Business Contact Mnanager for Outlook2010之二:常用基本功能
  2. Spring Boot 之发送邮件
  3. Android Fragment使用(三) Activity, Fragment, WebView的状态保存和恢复
  4. 转PET灌装机的完善
  5. html5网页动画总结--jQuery旋转插件jqueryrotate
  6. 如何知道iframe文件下载download完成
  7. 审稿人,我想跟您谈谈心
  8. 为参加脱欧协议表决 英国工党女议员将延后剖腹产
  9. AndroidICS4.0----LockScreen锁屏流程【Android源码解析九】
  10. Linux磁盘管理:LVM逻辑卷管理
  11. 软件安装包制作工具installshield 2020 R1的安装教程
  12. 实战教你刷显卡BIOS
  13. java long精度问题_解决Long类型超过16位丢失精度问题的两种方法
  14. 【论文研读】Category-level Adversaries for Semantics Consistent Domain Adaptation(cvpr2019)
  15. CGB2202面向对象第10天
  16. python 输出数据到Excel表格
  17. 2019世界智能网联汽车大会10月召开
  18. 技术部门怎么年终考核最合理?
  19. 模仿知乎——实现一个多用户在线问答平台
  20. 不要小看 b=~a4

热门文章

  1. leetcode-36-有效的数独
  2. postgresql10.5安装
  3. 云服务器配置出现的问题 2
  4. MVC之排球比赛计分程序 ——(二)架构概要设计
  5. SQL中删除重复的行(重复数据),只保留一行 转
  6. POJ 3241 Object Clustering(Manhattan MST)
  7. SQL Server 2005中的分区表
  8. SQL SERVER 2005 同步复制技术 发布与订阅功能使用说明
  9. Array.ForEach的委托方法
  10. quot c语言数组压缩 quot,程序员之---C语言细节12(指针和数组细节,quot;//quot;的可移植性说明)...