MongoDB4.x优化

本文介绍了MongoDB的架构,包括C/S结构和副本集、分片集群的运作。讨论了MongoDB的存储引擎WiredTiger,以及数据访问和存储的优化。针对键的优化、_id生成、Schema设计和压缩算法选择进行了深入探讨。此外,文章还分析了数据丢失问题及其解决方案,如开启恢复日志和设置写关注级别。最后,提出了处理大量数据删除和空洞整理的方法,以确保数据库高效运行。
摘要由CSDN通过智能技术生成

MongoDB架构

MongoDB是典型的C/S架构,数据库存储采用主从结构,应用发起的读写请求都落在主库上,如果是写入请求,主库提交之后,还会同步写入到对应的从库上,同步的具体方式是类似OpLog,主库+从库组成了一个副本集,是MongoDB最小的部署单位。

同时,MongoDB还支持较为复杂的集群方案,为用户解决元数据的高可用,业务数据的冗余和灾备(副本集来保证),动态自动分片,动态自动数据均衡等问题。典型的集群架构如下图所示:

上面的图表示的集群由两个副本集,一个配置服务器,两个MongoS路由器组成其中配置服务器是存放整个集群的元信息,本身不具备调度功能;MongoS路由负责负载均衡,当客户端请求到来时,MongoS需要把该请求路由到对应的副本集上。

分片

MongoDB分片集群将数据分布在一个或多个分片上。每个分片部署成一个MongoDB副本集,该副本集保存了集群整体数据的一部分。因为每个分片都是一个副本集,所以他们拥有自己的复制机制,能够自动进行故障转移。你可以直接连接单个分片,就像连接单独的副本集一样。但是,如果连接的副本集是分片集群的一部分,那么只能看到部分数据。

分片的信息可以基于库,也可以基于集合,对于大部分情况,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值