
MongoDB
文章平均质量分 78
姜希成
岁月流逝,将来的某时某处,我会在叹息中想起,林间的路分成两股,而我选择了人迹罕至之徒,那一刻起,一切差别已成定铸。
展开
-
MongoDB-SpringBoot集成
【代码】MongoDB-SpringBoot集成。原创 2024-09-06 10:18:27 · 509 阅读 · 0 评论 -
MongoDB-Change Stream
假设在一系列写入操作的过程中,订阅 Change Stream 的应用在接收到“写3”之后 于 t0 时刻崩溃。Change Stream 指数据的变化事件流,MongoDB从3.6版本开始提供订阅数据变更的功能。Change Stream 的实现原理:是基于 oplog 实现的,提供推送实时增量的推送功能。如果只对某些类型的变更事件感兴趣,可以使用使用聚合管道的过滤步骤过滤事件。这样的一致性级别,保证写入的变更不会被回滚。Change Stream 故障恢复。Change Stream会采用。原创 2024-09-06 10:14:29 · 511 阅读 · 0 评论 -
MongoDB-索引
【代码】MongoDB-索引。原创 2024-09-06 10:10:32 · 1429 阅读 · 0 评论 -
MongoDB-数据模型
MongoDB为了尽可能保证业务查询的“热数据”能快速被访问,其内部缓存的默认大小达到了内存的一半,该值由wiredTigerCacheSize参数指定。WiredTiger引擎实现了数据的二级缓存,第一层是操作系统的页面缓存,第二层则是引擎提供的内部缓存。WiredTiger开始执行写事务,修改的数据写入页块的一个更新记录表,此时原来的记录仍然保持不变。数据库从内部缓存中获取当前记录所在的页块,如果不存在则会从磁盘中加载(Buffer I/O)5字节表示随机数(机器号+进程号唯一)读取数据时的流程如下。原创 2024-09-06 10:07:22 · 1436 阅读 · 0 评论 -
MongoDB-事务
{w: “majority”} 数据写入到副本集大多数成员后向客户端发送确认,适用于对数据安全性要求比较高的场景,该选项会降低写入性能。在 readPreference 选择了指定的节点后,readConcern 决定这个节点上的数据哪些是可读的,类似事务隔离级别。{w: 0} 对客户端的写入不需要发送任何确认,适用于性能要求高,但不关注正确性的场景。安全的读写分离:向主节点写入一条数据之后立即从从节点读取这条数据(可能读不到)wtimeout: 写入超时时间,仅w的值大于1时有效。只在多文档事务中生效。原创 2024-09-06 09:57:15 · 1627 阅读 · 0 评论 -
MongoDB-开发规范
【代码】MongoDB-开发规范。原创 2024-09-06 09:48:02 · 537 阅读 · 0 评论 -
MongoDB-聚合操作
管道(Pipeline)和阶段(Stage):整个聚合运算过程称为管道(Pipeline),它是由多个阶段(Stage)组成的。用于对文档进行筛选,之后可以在得到的文档子集上做聚合,可以使用除了地理空间之外的所有常规查询操作符。用于对输入文档进行分组,根据指定的边界(buckets)将文档分配到指定的组,类似于。用于将聚合结果写入到指定的集合中。跳过进入stage的指定数量的文档,并将其余文档传递到管道中的下一个阶段。按指定的表达式对文档进行分组,并将每个不同分组的文档输出到下一个阶段。原创 2024-09-06 09:46:37 · 1479 阅读 · 0 评论 -
MongoDB-基础操作
【代码】MongoDB-基础操作。原创 2024-09-06 09:41:32 · 1124 阅读 · 0 评论 -
MongoDB-高级集群架构
两地三中心集群架构全球多写集群架构两地三中心集群架构全球多写集群架构原创 2024-09-06 09:39:15 · 357 阅读 · 0 评论 -
MongoDB-复制集
此模式始终提供数据集的两个完整副本,如果主节点不可用,则复制集选择备节点作为主节点并继续正常操作。local.replset.minvalid:用来记录复制集的跟踪信息,如初始化同步需要的字段。此模式仅提供数据的一个完整副本,如果主节点不可用,则复制集将选择备节点作为主节点。复制集提供冗余和高可用性,是所有生产部署的基础,依赖于两个方面的功能。local.system.replset:用来记录当前复制集的成员。其中,Arbiter节点不存储数据副本,也不提供业务的读写操作。原创 2024-09-06 09:30:59 · 1288 阅读 · 0 评论 -
MongoDB-分片集
如果持续地向该chunk写入数据,并导致数据量超过了chunk大小,则MongoDB会自动进行分裂,将该chunk切分为两个相同大小的chunk。chunk分裂是基于分片键进行的,如果分片键的基数太小,则可能因为无法分裂而会出现 jumbo chunk(超大块)的问题。Config Server的自动均衡器对chunk分布进行检查,发现shard0和shard1的chunk数差异达到了阈值。事先根据分片键计算出一个新的哈希值(64位整数),再根据哈希值按照范围分片的策略进行chunk的切分。原创 2024-09-06 09:23:34 · 928 阅读 · 0 评论 -
MongoDB-调优
导致MongoDB性能不佳的原因。影响MongoDB性能的因素。MongoDB 优化建模。原创 2024-09-06 09:16:40 · 1446 阅读 · 0 评论