首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么MongoDB local.oplog.rs集合没有索引?

MongoDB local.oplog.rs集合没有索引是因为该集合是用于存储复制操作日志(replication oplog)的,它是MongoDB中用于实现数据复制和故障恢复的重要组件。由于oplog.rs集合的特殊用途和特定写入顺序的要求,MongoDB官方不推荐为oplog.rs集合创建索引。

具体原因如下:

  1. 写入性能:为oplog.rs集合创建索引会增加写入操作的开销,降低复制操作的性能。oplog.rs集合是实时写入的,需要尽可能快地将写入操作同步到所有的复制节点上,而索引的维护会导致额外的写入操作,降低性能。
  2. 复制效率:oplog.rs集合的数据量较大且持续增长,为其创建索引会增加复制节点间的数据同步量。复制操作的目标是尽快将主节点上的写入操作复制到从节点上,如果为oplog.rs集合创建了索引,那么索引的同步也会成为复制操作的一部分,增加了复制延迟。
  3. 高可靠性:oplog.rs集合的数据对于复制操作的正确性和可靠性非常关键。为了保证数据的一致性,MongoDB官方推荐使用replication oplog作为内部管理工具,禁止用户修改其中的数据。

尽管oplog.rs集合没有索引,但它在MongoDB复制机制中发挥着重要的作用。在日常使用中,用户一般不会直接操作oplog.rs集合,而是通过MongoDB提供的复制操作命令和工具来管理和监控复制集。用户可以根据实际需求选择合适的腾讯云产品,如腾讯云数据库MongoDB版(MongoDB for TencentDB)来进行数据复制和故障恢复的操作。

腾讯云数据库MongoDB版(MongoDB for TencentDB)是腾讯云提供的一种高性能、高可靠性的数据库服务,基于MongoDB技术,可以提供自动的数据复制和故障恢复功能。更多关于腾讯云数据库MongoDB版的详细信息,请参考腾讯云官方文档:https://cloud.tencent.com/document/product/240

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

这个sql为什么没有用到索引

用户users 表中对 create_time 字段建有索引 现在查询某个时间段的用户,通过explain发现下面这个sql 没有用到索引 explain select * from users...explain 结果 possible_keys 列出了可能用到的索引 key 为空,实际没有使用索引 type 为 ALL,说明实际使用了全表扫描 这条语句非常简单,正常来讲应该可以用到 create_time...的索引 现在缩小查询范围,起始时间改为 ‘2015-08-01’,再次执行 ?...可以看到,这回使用了索引 为什么只是缩小了查询范围,其他什么都没有改,就可以使用索引了?...原因 查询优化器会先找到可以使用的索引,就是possible_keys的值 如果有多个索引可以用,就选出一个最优的 这时优化器还会判断,使用最优索引查找时,是否会跨越30%的表内容 如果会超越,那么优化器就可能认为表扫描会更有效

1.3K50
  • Mongo集合20亿数据没有索引,如何清除历史数据?

    背景 某天早上照常进行数据库巡检,发现了MongoDB 集群分片中某个节点的磁盘使用率已经达到了 75%。...然而,我们面临一个尴尬的问题:时间字段没有索引!!! 问题分析 问题主要还是前期产品设计没有考虑历史数据清除策略,任由其数据肆意增长,增长到20亿,时间字段也未添加索引。...同时还存在一个严重弊端,这么大的集合未开启分片,导致整个集合数据都存储到同一个shard分片上。shard分片磁盘使用严重倾斜,其他分片只用了25%,当前索引顺序也存在不合理的地方。...集合索引 db.getCollection("visitor").createIndex({ companyId: NumberInt("1"), visitorStaticId: NumberInt...粗浅地将脚本写完后,进行了简单测试,发现没有索引,查询一天的数据太久,这种方式周期太长,工作量也较大,数据准确性存在较大风险。

    15910

    为什么你创建的数据库索引没有生效?

    几乎所有的小伙伴都可以随口说几句关于创建索引的优缺点,也知道什么时候创建索引能够提高我们的查询性能,什么时候索引会更新,但是你有没有注意到,即使你设置了索引,有些时候索引他是不会生效的!...从最好到最差的连接类型为:const、eq_reg、ref、range、indexhe和ALL; possible_keys:显示可能应用在这张表中的索引。如果为空,没有可能的索引。...可以为相关的域从where语句中选择一个合适的语句; key: 实际使用的索引。如果为NULL,则没有使用索引。很少的情况下,MySQL会选择优化不足的索引。...2、尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,即使其中有条件带索引也不会使用,这也是为什么尽量少用 or 的原因; ?...3、对于多列索引,不是使用的第一部分,则不会使用索引; 4、如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不会使用索引; ? 5、like的模糊查询以 % 开头,索引失效; ?

    1.8K10

    MongoDB权威指南学习笔记5---索引相关的知识点

    cursor表明是否用了索引 nscanned 要分2部分解释:如果使用了索引,是扫描的索引条目;否则就是扫描的文档总数 nscannedObjects---mongodb完成这个查询扫描的文档总数。...: [ { "opid" : 486, "active" : true, "secs_running" : 2, "op" : "getmore", "ns" : "local.oplog.rs...对于写操作时间慢,一个集合最多64个索引,通常不要超过2个以上的索引个数!...注意,如果某个文档没有email字段,而又建立了稀疏索引 则这个文档不会在索引中存在,则你搜索的时候,是不会搜到这个文档的 mongoDB怎么这么多变态的东西!真是个大坑!...20 索引管理 所有的数据库索引信息都存储在system.indexes集合里。 这是一个保留集合,不能对其进行增加修改删除,只能通过 ensureIndex和dropIndexes进行操作!

    57450

    为什么Mongodb索引用B树,而Mysql用B+树?

    今天讲的这个主题,是《面试官:谈谈你对mysql索引的认识》,里头提到的一个坑。 也就是说,如果面试官问的是,为什么Mysql中Innodb的索引结构采取B+树?...那么为什么Mysql做数据遍历操作多?而Mongodb做数据遍历操作少呢? 因为Mysql是关系型数据库,而Mongodb是非关系型数据。 那为什么关系型数据库,做数据遍历操作多?...也就是弄两个集合如下所示 ? 然后,执行两次查询去获得结果!一次去class集合查,获得id后再去student集合查。 确实,这么设计是可以的,我没说不行。只是不符合非关系型数据库的设计初衷。...面试套路 目前套路有如下几种 套路一 你简历写了mysql,没写mongodb! 面试官:"说说mysql索引结构?" 我:"巴拉巴拉" 面试官:"知道为什么用B+树,不用B树么?"...我:"巴拉巴拉" 面试官:"为什么Mongodb索引用B树,而Mysql用B+树?" 然后你就回去等通知了! 套路三 你简历既没写mysql,没写mongodb!

    2K30

    为什么Mongodb索引用B树,而Mysql用B+树?

    今天讲的这个主题,是《面试官:谈谈你对mysql索引的认识》,里头提到的一个坑。 也就是说,如果面试官问的是,为什么Mysql中Innodb的索引结构采取B+树?...那么为什么Mysql做数据遍历操作多?而Mongodb做数据遍历操作少呢? 因为Mysql是关系型数据库,而Mongodb是非关系型数据。 那为什么关系型数据库,做数据遍历操作多?...也就是弄两个集合如下所示 ? 然后,执行两次查询去获得结果!一次去class集合查,获得id后再去student集合查。 确实,这么设计是可以的,我没说不行。只是不符合非关系型数据库的设计初衷。...面试套路 目前套路有如下几种 套路一 你简历写了mysql,没写mongodb! 面试官:"说说mysql索引结构?" 我:"巴拉巴拉" 面试官:"知道为什么用B+树,不用B树么?"...我:"巴拉巴拉" 面试官:"为什么Mongodb索引用B树,而Mysql用B+树?" 然后你就回去等通知了! 套路三 你简历既没写mysql,没写mongodb!

    1.3K10

    【DB笔试面试565】在Oracle中,为什么索引没有被使用?

    ♣ 题目部分 在Oracle中,为什么索引没有被使用? ♣ 答案部分 “为什么索引没有被使用”是一个涉及面较广的问题。有多种原因会导致索引不能被使用。...首要的原因就是统计信息不准,第二原因就是索引的选择度不高,使用索引比使用全表扫描效率更差。...一、快速检查 n 表上是否存在索引? n 索引是否应该被使用? 二、索引本身的问题 n 索引索引列是否在WHERE条件中(Predicate List)?...n 一个索引是否与其它的索引有相同的等级或者成本(Cost)? n 索引的选择度是否不高? n 在总体成本中,表扫描的成本是否占大部分? n 访问空索引并不意味着比访问有值的索引高效?...n 索引提示(Hint)是否不工作? n 索引列是否使用了前置通配符(%)? n 索引列是否使用了非等值连接符? n 是否在WHERE子句中对索引列进行了IS NULL值判断?

    1.2K20

    面试之MongoDB「建议收藏」

    MongoDB 和 CouchDB 都是面向文档的数据库。MongoDB 和 CouchDB 都是开源 NoSQL 数据库的最典型代表。 除了都以文档形式存储外它们没有其他的共同点。...MongoDB 没有使用传统的锁或者复杂的带回滚的事务,因为它设计的宗旨是轻量,快速以及可预计的高性能。可以把它类比成 MySQL MylSAM 的自动提交模式。...为什么我的数据文件如此庞大? MongoDB 会积极的预分配预留空间来防止文件系统碎片。 启用备份故障恢复需要多久?...MongoDB 分片是基于区域(range)的。所以一个集合(collection)中的所有的对象都被存放到一个块 (chunk)中。只有当存在多余一个块的时候,才会有多个分片获取数据的选项。...MongoDB 在 A:{B,C}上建立索引,查询 A:{B,C}和 A:{C,B}都会使用索引吗? 不会,只会在 A:{B,C}上使用索引

    1.2K10

    MongoDB 主从集群 1

    说到集群,生产环境中很多服务都会进行集群部署,那么 mongodb 的集群都有哪些知识点需要掌握呢 mongodb 集群 分为 主从集群 和分片集群 ,先从主从集群开始 为什么需要集群?...,与实际访问到哪一个服务没有关系 因为这些服务不存储数据,数据都是去找一个公共的组件获取 无状态集群 指集群里面的服务不需要存放数据 有状态的集群,即自身是存储数据的,那么在集群中,就会出现数据一致性的问题...oplog 其实就是 mongodb local 数据库里面的一个集合 local.oplog.rs 集合,固定集合的大小默认是硬盘的 5% ,默认最大也不会超过 50 个 G oplog 上面会存放整个...mongodb 的所有写操作 oplog 的初始化是如何做的 若一个集群中,有 1个 primary(mongodb 1) 和 2 个 secondary(mongodb 2,mongodb 3)...,已经存在一段时间了,产生了一些 oplog 信息了,这个时候,又接上来了一个 secondary(mongodb 4) 此时 mongodb 4 会去读取 mongodb 3 和 mongodb 2

    43980

    95道MongoDB面试题(含答案),1万字详细解析!

    它是通过跟踪复制oplog(local.oplog.rs)做到的。 20、我必须调用getLastError来确保写操作生效了么? 不用。...基于列存储 Eg:Cassandra 65、为什么MOngoDB?...如果每个集合有一个索引(比如默认的_id索引),那么最多可以创建12000个集合。如果索引数更多,则可创建的集合数就更少了。同时,如果集合数太多,一些操作也会变慢。...83、为什么要在MongoDB中用"Regular Expression"数据类型 "Regular Expression"类型用于在文档中存储正则表达式 84、为什么MongoDB中使用"Object...87、在MongoDb中什么是索引 索引用于高效的执行查询.没有索引MongoDB将扫描查询整个集合中的所有文档这种扫描效率很低,需要处理大量数据。

    8.1K30

    MongoDB事务模型分析

    mongo层一个最简单的table包含一个 ObjectId(_id) 索引。_id类似于Mysql中主键的概念 ? 但是mongo中并不会将_id索引与行内容存放在一起(即没有聚簇索引的概念)。...数据组织 此外,一个Mongodb实例还包含一张记录对每一行的写操作的表local.oplog.rs, 该表主要用于复制(primary-secondary replication)。...每一次(对实例中任何一张表的任何一行的)更新操作,都会产生唯一的一条oplog,记录在local.oplog.rs表里。...mongodb的单行事务,说的是:对数据,索引,oplog这三者的更新是原子的。...不存在索引段中的某个RecordId,在数据段中找不到,也不存在一条记录的更改被应用,但是没有记录到oplog中, 反之亦然。

    1.8K20

    全网最全95道MongoDB面试题1万字详细解析

    它是通过跟踪复制oplog(local.oplog.rs)做到的。 20、我必须调用getLastError来确保写操作生效了么? 不用。...基于列存储 Eg:Cassandra 65、为什么MOngoDB?...如果每个集合有一个索引(比如默认的_id索引),那么最多可以创建12000个集合。如果索引数更多,则可创建的集合数就更少了。同时,如果集合数太多,一些操作也会变慢。...83、为什么要在MongoDB中用"Regular Expression"数据类型 "Regular Expression"类型用于在文档中存储正则表达式 84、为什么MongoDB中使用"Object...87、在MongoDb中什么是索引 索引用于高效的执行查询.没有索引MongoDB将扫描查询整个集合中的所有文档这种扫描效率很低,需要处理大量数据。

    13.4K00

    一次MongoDB故障的复盘

    这也是为什么有主从延迟的时候Teambition系统本身并未) 由于短时间内我们无法查看客户处mongodb集群的状态与监控指标,方案3实现周期长于前两者,故而放弃。...看起来该值的计算并没有什么问题,但是在某类场景下,db.printSlaveReplicationInfo()的返回值(即主从延迟)并没有那么贴切。...接下来尝试分析为何会出现主从延迟,从之前梳理的集群状态来看,除去主从延迟和local.oplog.rs的slow query,其他指标均十分健康(并不是)。...我们知道oplog是没有严格意义上的索引,所以这类游标在第一次建立的时候会比较耗时,持续trace到最后的末尾的时候会处于tailabled和awaitData状态,此时实时trace数据的getmore...同步业务代码在建立cursor时,使用了tailable,awaitData,且noCursorTimeout的定义,致使cursor在业务没有主动close的情况下,将永久存在。

    1.3K20

    MongoDB 在系统数据库local上无法创建用户的解决方法

    我们知道,MongoDB的Oplog (operations log)记录了用户的最近一段时间的操作(时间长短主要受设置的oplogSize和程序的写入更新量的影响)。...那么,如果其他部门(例如BI团队)需要抽取数据,从 local.oplog.rs中读取解析一个不错的选择。...oplog位于local数据下面,为了将权限最小化,大家需要创建此库的权限(还可以将权限细化到集合,再次不讨论)。 习惯性的,在local数据库下面创建,但是报错了。...src/mongo/shell/utils.js:25:13 DB.prototype.createUser@src/mongo/shell/db.js:1290:15 @(shell):1:1 查看mongoDB...admin)  Default Database 的编辑项,选择oplog所在的local数据库 登入成功 (但是在测试过程中,发现此工具在这个小权限下,登入可以成功,但是有时候执行命令时报错,而通过 MongoDB

    1.7K10

    MongoDB Docker版本:基础入门和复制集

    mongoDB基础入门 介绍 mongoDB是一个存储文档的非关系型数据库 mongoDB的结构: 数据库: 包含集合 集合: 存储文档 文档: json格式 一条命令在docker容器中运行mongoDB.../mongo/data:/data/db -d mongo:4 docker ps #查看容器状态 docker logs mymongo #查看日志 mongoExpress 的使用 基于网络的mongoDB...docker run --link mymongo:mongo -p 8081:8081 mongo-express 浏览器访问http://ip:8081 即可 mongo Shell客户端 是一个用来操作mongoDB...的javascript客户端界面 运行mongo shell docker exec -it mymongo mongo > exit #退出mongoshell进程 mongoDB复制集 数据复制...新节点加入复制集 投票机 也是一个副节点 不会从主节点同步数据 不可能被选举为主节点 可以参与投票,但不能给自己投票 初始同步 主节点上的所有信息拷贝到副节点 同步写库记录 性能比较差,会出现block的情况 local.oplog.rs

    72630

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券