
mongodb
文章平均质量分 84
焱齿
tencent
展开
-
22.MongoDB删除操作效率及相关问题验证
最近遇到一个了一个MongoDB数据删除的问题,需要一次性删除上线即1.5年前~1年前的数据且之后每天清空一年过期的数据。在数据量比较大的情况下何种方式的删除效率最高是一个值得研究的问题,本文通过实际测试找出其中规律。本文采用腾讯云mongodb集群进行验证。mongd配置较弱为2核4G,验证仅仅针对副本集不涉及分片集群。测试数据集如下,共计1000w条数据。接下来会以systime字段作为筛选条件验证影响删除操作耗时的因素都有哪些。原创 2022-12-17 19:27:28 · 2672 阅读 · 2 评论 -
20.MongoDB之upsert(更新插入)
mongodb的更新插入原创 2022-10-08 19:39:10 · 5214 阅读 · 0 评论 -
腾讯云dts使用注意事项
如下是mongodb之间的数据迁移的一些注意点。DTS使用注意事项:(1)dts迁移是什么维度的迁移?? 这个是可选的。可以全量迁移、也可以全量+增量的迁移。可以指定整个实例的迁移、也可以指定db甚至指定集合进行迁移。(2)目标数据库建立同名db、同名集合经过验证这些都是ok的;会给你一个提示。他的实际玩法是发现有了这些之后dts就会跳过这些步骤,进入后续阶段。(3)验证一下dts对于索引的处理。源库的索引会被原封不动的同步过来,经过验证确实如此。所以说你需要确保这些索...原创 2021-11-29 16:14:09 · 1071 阅读 · 0 评论 -
18.MongoDB之balancer
可以参考分片集群的介绍这里可以参见chunk预分片的介绍 这里关于均衡及官网介绍这里 这里前言:使用MongoDB当你对Chunk、Split、Balancer(甚至于jumbo chunk、autosplit)有一定了解后,Mongo对于你就不在是一个整体了,分分合合、动态平衡的视角应该在你的脑海中呈现。一、balancer(均衡器)简介1、简介①Balancer是一个监视各个shard上的chunk数的后台进程;②他运行在Config Server副本集的prim...原创 2021-11-26 15:05:21 · 3180 阅读 · 1 评论 -
17.Mongodb预分片(pre-split)/autosplit(chunk/jumbochunk相关)
一、为什么要预先分片有的时候mongodb的读写量并不是很大,但是cpu负载相对较高;另外有时候在迁移数据的时候发现整体的进度好慢。这个时候可能就需要留意两种情况了:一个是mongodb是否频繁的balance;另一个是否有频繁的split操作。通过手动预分片我们可以尽量的避免这种频繁balance和split对cpu和IO资源的消耗。二、chunk数以及chunk范围等的查看看 还是那句话,建立反馈机制非常重要。最理想的情况就是你的每一个操作都有迹可循、都......原创 2021-11-25 15:58:06 · 2000 阅读 · 5 评论 -
16.Mongodb之预写日志(Journaling)
https://docs.mongodb.com/manual/core/journaling/https://docs.mongodb.com/manual/core/wiredtiger/#std-label-storage-wiredtiger-checkpoints前言:本文所说的日志是WiredTiger预写日志(WiredTiger write-ahead log)即Journal,而不是Mongodb日志文件。检查点(checkpoint):其实就是一个阶段性的数据快照。这个快照显原创 2021-09-05 18:46:05 · 2282 阅读 · 3 评论 -
15.MongoDB的一致性(读关注与写关注)
https://docs.mongodb.com/manual/reference/read-concern/https://docs.mongodb.com/manual/reference/write-concern/https://docs.mongodb.com/manual/core/replica-set-write-concern/https://docs.mongodb.com/manual/core/read-isolation-consistency-recency/一、原创 2021-08-22 16:17:42 · 3895 阅读 · 0 评论 -
14.Mongodb之导出(mongoexport)、导入(mongoimport)
官网如下:有必要把出现的几个命令行工具都研究一下。https://docs.mongodb.com/database-tools/mongoexport/#mongodb-binary-bin.mongoexport关于mongoexport和mongoimport这篇文章大致介绍了下怎么用。https://blog.youkuaiyun.com/mijichui2153/article/details/113846890mongodb数据库工具一、mongodump:在mongo.原创 2021-08-01 17:50:45 · 25584 阅读 · 0 评论 -
13.MongoDB之Gridfs
参照官网如下(如下链接依次递进):https://docs.mongodb.com/manual/core/gridfs/https://docs.mongodb.com/database-tools/mongofiles/#mongodb-binary-bin.mongofileshttps://docs.mongodb.com/database-tools/installation/installation/mongofiles可执行程序提供了命令行操作存储在GridFS对象中Mongo原创 2021-07-22 15:22:03 · 4007 阅读 · 4 评论 -
12.MongoDB之固定集合(Capped Collections)
简介。MongoDB固定集合(Capped Collections)是性能出色且有着固定大小的集合。我们可以将其想成一个环形队列,当集合空间用完后,在插入的元素就会覆盖最初是的头部元素。另外这里说的大小固定其实有有两个含义:① 存储空间大小有上限②文档数有上限。实际使用时触发其中任何一个上限都会引发前面说的覆盖。适应范围。固定集合很像环形队列,如果空间不足就会覆盖最早的文档。由此可见固定集合适应于任何想要自动淘汰过期属性的场景。例如:日志文件、最近通话记录、最近联系人、最近聊天记录等。固定集合的优.原创 2021-07-21 14:22:26 · 859 阅读 · 0 评论 -
11.MongoDB之副本集与Oplog
关于Oplog的官网说明 :https://docs.mongodb.com/manual/core/replica-set-oplog/1、Oplog简介。Oplog即操作日志(operation log)是用于保存Mongodb数据库所有数据操作记录(实际上只记录改动数据库数据的操作记录,即增/删/改)的固定大小集合(Capped Collections)。类比过来的话就相当于是mysql的binlog日志。Oplog的存在及大地方便了MongoDB副本集的各节点的数据同步。2、副本集数据.原创 2021-07-20 23:41:59 · 2230 阅读 · 1 评论 -
9.MongoDB之explain(执行计划分析)
对executionStats返回逐层分析 第一层,executionTimeMillis 最为直观explain返回值是executionTimeMillis值,指的是我们这条语句的执行时间,这个值当然是希望越少越好。 其中有3个executionTimeMillis,分别是: executionStats.executionTimeMillis 该query的整体查询时间。 executionStats.executionStages.exec...原创 2021-04-15 15:48:14 · 18591 阅读 · 2 评论 -
8.MongoDB之分片集群
一、mongodb分片与各角色与概念介绍Mongodb的分片机制是mongodb数据库的核心机制,也是其可用性高,扩展性好的原因,分片—sharding 的意思就是将数据库数据分散存贮到不同的服务器上,来缓解高并发访问,均衡负载。举例来说一下,比如说一个collection有TB级别的数据,在传统方式下如果有两个线程要访问其中的数据,即使这个线程访问的数据是不同的,为保证同步需要排队等待,分片机制可以很好的解决这个问题,分片机制其实就是分布式的集群,比如现在有五台服务器作为集群,mongodb可以将一.原创 2021-03-14 14:46:10 · 11527 阅读 · 1 评论 -
7.MongoDB之读策略readPreference
参考官网这里:https://docs.mongodb.com/manual/reference/connection-string/#connections-read-preference对于分布式数据库(多节点),更好的实现数据隔离、以及数据读策略的多样化。1、readPreferencereadPreference 主要控制客户端driver从副本集(Replica Set)的那个节点读取数据,这个特性可以方便的配置读写分离、就近去读等策略。各个配置的含义如下:(1)primary:只原创 2021-03-12 21:58:50 · 7906 阅读 · 0 评论 -
6.MongoDB之索引
关于索引举个日常生活中的例子。拿到一本书想查阅某知识的时候我们一般都会先去看目录,找到相关的章节后直接翻到对应的页码然后在这里小章节里面进一步定位我们想要的内容;这就是目录索引,能够帮助读者快读的找到想要找的内容。(一个更好的例子应该是英汉词典了,当我们查询单词的时候我们不会一页一页的去遍历整个词典,而是现根据首字母快读定位到对应章节然后再根据次字母进一步缩小查询范围,知道最终找到对应单词。) 其实在数据库中也一样,索引能够极大的提高查询效率。如果没有索引mongodb在读取数据的时候必须扫描集合中的每个.原创 2021-02-18 17:21:45 · 5178 阅读 · 1 评论 -
5.MongoDB之正则表达式与聚合框架
1、mongo与mysql集合类对比SQL 操作/函数 mongodb聚合操作 where $match 用于过滤数据,只输出符合条件的文档;$match使用MongoDB的标准查询操作。 group by $group 将集合中的文档分组,可用于统计结果。 having $match 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。 select $project 修改输入文档...原创 2021-02-08 20:37:45 · 1933 阅读 · 0 评论 -
4.Mongodb之js脚本
MongoDb的shell就是javascript实现的,可以使用js管理数据库是MongoDB同其他数据相比的一个非常大的优势。这意味着我们可以使用js脚本进行复杂的管理,例如对数据进行统计计算除了使用mapreduce之外使用js也是很好的选择。mongo客户端有两种方式与mongodb服务进行交互,一种是mongo shell;一种是执行javascript脚本(可以直接贴shell;当然最好执行js脚本)。 参考 这里一、直接在shell执行js代码#直接将如下js脚本贴到shell即原创 2021-02-07 11:18:04 · 10033 阅读 · 0 评论 -
3.MongoDB uri中包含特殊字符与读策略配置
用过mongo的同学对于对于mongodb的标准uri应该不会陌生,格式如下:mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]举几个例子:(1)没有设置用户名密码的时:mongodb://11.XXX.6.XXX:27017(2)用户名为"mongouser",密码为“mypasswd”时mongodb://mongouse原创 2020-12-13 19:32:41 · 6475 阅读 · 1 评论 -
2.Linux下C++操作MongoDB
其实主要就是参照官方文档http://mongoc.org/libmongoc/current/installing.html一、安装驱动mongocxx-drivermongocxx依赖与mongo-c-driver,所以我们会先安装mongo-c-driver然后再安装mongo-cxx。1、安装mongo-c-driver#下载1.71.1版本的压缩包wget https://github.com/mongodb/mongo-c-driver/releases/download/.原创 2020-10-08 16:52:44 · 2508 阅读 · 0 评论 -
1.MongoDB入门详解
MongoDB 提供了 linux 各个发行版本 64 位的安装包,你可以在官网下载安装包。安装前我们需要安装各个 Linux 平台依赖包。Red Hat/CentOS:sudo yum install libcurl opensslMongoDB 源码下载地址:https://www.mongodb.com/download-center#community这里我们选择 tgz 下载,下载完安装包,并解压tgz(以下演示的是 64 位 Linux上的安装) 。wg..原创 2020-08-03 21:58:38 · 7263 阅读 · 3 评论