MongoDB 8.0——分片

保姆级教程:用Prometheus 2.55.0 + Grafana 11.2.0 监控MongoDB 4.0/7.0/8.0集群(含分片与副本集配置) 本文提供了一套基于Prometheus 2.55.0和Grafana 11.2.0的MongoDB集群监控解决方案,涵盖分片与副本集配置。通过详细的部署步骤和优化技巧,帮助用户实现从数据采集到可视化的全流程监控,提升分布式数据库的运维效率。 阅读详情

1、分片基础

1.1、分片介绍

MongoDB数据库分片就是将数据分成块,再将块存储到不同的服务器上,其实是一种分布式存储数据的方法。如果数据库系统存在大型数据集或高吞吐量应用程序的情形,可能会对单个服务器的容量构成挑战。

例如,较高的查询速率可能会耗尽服务器的CPU容量。大于系统RAM的工作集大小会对磁盘驱动器的I/O容量造成压力。因此,有两种方法可以解决系统扩展的问题,分别是垂直扩展(Vertical Scaling)和水平扩展(HorizontalScaling)。

1.1.1、垂直扩展

涉及增大单个服务器的容量,例如使用更强大的CPU、添加更多RAM或增加存储空间量。可用技术所存在的限制可能会导致单个机器对于给定工作负载来说不够强大。因此,垂直扩展存在实际的最大值。

1.1.2、水平扩展

涉及将系统数据集和负载划分到多个服务器,以及按需增加服务器以提高容量。虽然单个机器的总体速度或容量可能不高,但每个机器均可处理总体工作负载的一部分,因此可能会比单个高速、高容量服务器提供更高的效率。扩展部署的容量只需按需添加额外的服务器,而且这可能会比添加单个机器的高端硬件整体成本更低,但这种做法的代价在于会增大部署的基础设施与维护的复杂性。

对于MongoDB数据库而言,支持通过分片进行水平扩展。

1.2、分片键介绍

MongoDB数据库使用分片键在分片之间分发集合的文档,分片键由文档中的一个或多个字段组成,分片集合中的文档可能缺少分片键字段。当跨分片分发文档时,缺少的分片键字段时将被视为null值,但在路由查询时则不会。

MongoDB在对集合进行分片时会选择分片键。从MongoDB 5.0版本开始,就可以通过更改集合的分片键对集合重新分片。此外,还可以通过向现有分片键添加后缀字段或添加新字段来优化分片键。文档的分片键值决定了其在各分片中的分布。我们可以更新文档的分片键值,除非分片键字段是不可变的_id字段。

分片键索引用于对已填充的集合进行分片,该集合必须具有以分片键开头的索引。对空集合进行分片时,如果该集合还没有指定分片键的适当索引,MongoDB数据库会创建支持索引。

分片键策略对于分片键的选择会影响分片集群的性能、效率和可扩展性。具有最佳硬件和基础架构的集群,可能会因为选择分片键而遇到瓶颈,分片键及其后备索引的选择也会影响集群可以使用的分片策略。

MongoDB数据库将数据分片为数据段,每个数据段都有一个基于分片键、包含下限且不包含上限的范围。为了实现数据在集群中所有分片上的均匀分布,负载均衡器会在后台运行,以便在各分片之间迁移范围。

1.3、分片的优点

MongoDB数据库分片具有如下几项优点。

1.3.1、读取/写入优点

MongoDB在分片集群中的分片之间分配读写工作负载,支持每个分片处理集群操作的子集。通过添加更多的分片,读写工作负载都可以在集群中横向扩展。

对于包含分片键或复合分片键前缀的查询,mongos可将查询定向到特定分片或一组分片。这些有针对性的操作通常比向集群中的每个分片进行广播更为有效。

1.3.2、存储容量优点

分片将数据分布在集群中的分片上,从而允许每个分片包含整个集群数据的子集。随着数据集的增长,更多的分片会增加集群的存储容量。

1.3.3、高可用性优点

按副本集来部署配置服务器和分片,可提高可用性。即使一个或多个分片副本集变为完全不可用,分片集群仍可继续执行部分读取和写入操作。换言之,即便无法访问不可用分片上的数据,针对可用分片的读取或写入仍可成功完成。

2、分片集群

2.1、分片集群的组成

MongoDB分片集群由以下组件构成。

  • 分片:每个分片都包含分片数据的一个子集。每个分片都必须作为一个副本集进行部署。
  • mongos:mongos充当查询路由器,在客户端应用程序和分片集群之间提供接口。
  • 配置服务器:配置服务器会存储集群的元数据和配置设置。配置服务器必须以副本集(CSRS)的形式部署。

关于分片集群内各组件之间的交互原理,具体描述如图所示。
在这里插入图片描述
MongoDB数据库在集合级别对数据进行分片,从而将集合数据分布到集群中的分片上。

2.2、生产配置

在MongoDB分片集群中,确保数据冗余和系统高可用性是生产环境的关键要求。对于生产分片集群的部署,可考虑以下事项:

  • 将配置服务器部署为3节点副本集。
  • 将每个分片部署为3成员副本集。
  • 部署一个或多个mongos路由器。

对于副本集分布而言,如果有可能,可以考虑将每个副本集的一个成员部署在适合作为灾难恢复位置的站点中。注意,将副本集成员分布在两个数据中心,比分布在一个数据中心更有优势。当成员分布在两个数据中心时,如果其中一个数据中心发生故障,数据仍可供读取;而如果所有成员都位于单个数据中心,则无法实现此功能。如果具有少数成员的数据中心出现故障,副本集仍然可以支持写入操作和读取操作。但是,如果具有大多数成员的数据中心出现故障,副本集将变为只读。

如果有可能,可将成员分布在至少3个数据中心。对于配置服务器副本集(CSRS),最佳实践是分布在3个数据中心(也可根据成员数量来增加数据中心数量)​。如果使用第3个数据中心的成本过高,一种可行的分布方法是在两个数据中心均匀分配数据承载成员,并将剩余成员存储在云中。

对于分片数量而言,分片集群需要至少两个分片来分发分片数据。如果计划日后启用分片,但在部署时又不需要启用,那么单个分片的分片集群可能会很有用。基于mongos的数量和分布,mongos路由器在部署多个mongos实例时支持高可用性和可扩展性。

如果代理或负载均衡器位于应用程序和mongos路由器之间,则必须为其配置客户端关联性。客户端关联性允许来自一个客户端的每个连接到达同一个mongos。要实现分片级别的高可用性,可以在已运行mongos实例的同一硬件上添加mongos实例,在应用程序级嵌入mongos路由器。mongos路由器会与配置服务器频繁通信。随着路由器数量的增加,性能可能会下降。如果性能下降,可减少路由器的数量。另外,最多只能部署30个mongos路由器。

在生产配置中,常用的分片集群架构如图所示。
在这里插入图片描述

2.3、开发配置

MongoDB数据库分片集群为了进行测试和开发,可以部署具有最少数量组件的分片集群。一般来讲,这些非生产集群具有以下组件:

  • 一个mongos实例。
  • 单个分片副本集。
  • 副本集配置服务器。

下图展示了仅用于开发目的的分片集群架构。
在这里插入图片描述

3、分片键的应用

3.1、分片键索引

MongoDB分片键可以是单个索引字段,也可以是复合索引涵盖的多个字段,复合索引决定了集合文档在集群分片中的分布。

MongoDB将分片键值(或哈希分片键值)的取值区间划分为不重叠的分片键值(或哈希分片键值)范围。每个分片键值范围都与一个数据块相关联,MongoDB会尝试在集群中的各个分片之间均匀分配这些数据块。分片键与数据段分发的有效性有直接关系。

MongoDB中的所有分片集合都必须具有支持分片键的索引。索引可以是分片键上的索引,也可以是复合索引,其中分片键是索引的前缀。如果集合为空,则sh.shardCollection()会在分片键上创建索引(如果此类索引尚不存在)​。如果集合不为空,则必须先创建索引,然后才能使用sh.shardCollection()。如果索引是唯一支持分片键的非隐藏索引,则无法将其删除或隐藏。

MongoDB可以对分片键值范围内的分片键索引执行唯一性约束。通过在分片键上使用唯一索引,MongoDB将确保整个键的组合的唯一性,而不是分片键的各个组成部分。对于分片键值范围内的分片集合,只有以下索引是唯一的:

  • 分片键上的索引。
  • 一个复合索引,其中分片键是前缀。
  • 默认_id索引。

只有当_id字段也是分片键时,分片集群才会在整个集群中对_id字段执行唯一性约束。如果_id字段不是分片键,或者只是分片键的前缀,则唯一性约束只适用于存储文档的分片。这意味着两个或多个文档可以具有相同的_id值,前提是其出现在不同的分片上。如果_id字段不是分片键,MongoDB希望应用程序确保所有分片上_id值的唯一性。

如果是唯一索引约束,则意味着以下几点:

  • 对于即将被分片的集合,如果该集合还有其他的唯一索引,则无法对其进行分片。
  • 对于已分片的集合,无法在其他字段上创建唯一索引。
  • 唯一索引为缺少索引字段的文档存储空值,即缺少的索引字段将被视为null索引键值的另一个实例。

要确保分片键值的唯一性,需要将unique参数设置为true值传递给sh.shardCollection()方法,详细说明如下:

  • 如果集合为空,sh.shardCollection()会在分片键上创建唯一索引(条件是这种索引尚不存在)​。
  • 如果集合不为空,则必须先创建索引,然后才能使用sh.shardCollection()。

尽管可以有以分片键为前缀的唯一复合索引,但如果使用unique参数,则集合必须在分片键上有唯一索引。另外,不能在哈希索引上指定唯一约束。

3.2、将集合分片

MongoDB必须指定要进行分片的集合的完整命名空间和分片键,才能对其进行分片。我们可以使用mongosh方法sh.shardCollection()对集合进行分片,具体代码如下:

sh.shardCollection(<namespace>, <key>)
  • 第1个参数namespace指定设计人员想要对其进行分片的集合的完整命名空间("<database>.<collection>")。
  • 第2个参数key指定文档{<shard key field1>: <1|"hashed">, ...},其中1表示基于范围的分片,"hashed"表示哈希分片。

关于分片键字段与字段值,具体描述如下。

  • 缺少的分片键字段:分片集合中的文档可能缺少分片键字段。缺失的分片键与值为null的分片键属于同一范围。
  • 更改文档的分区密钥值:可以更新文档的分片键值,除非分片键字段是不可变的_id字段。
  • 更改集合的分片键:从MongoDB 5.0版本开始,可以通过更改文档的分片键对集合重新分片。设计人员可以通过向现有分片键添加后缀字段来优化分片键。

3.3、选择分片键

MongoDB分片键的选择会影响数据段的创建和在可用分片间的分配。数据的分布会影响分片集群内操作的效率和性能。理想的分片键可以让MongoDB在整个集群中均匀地分发文档,同时也有利于实施常见的查询模式。

在选择分片键时,需要考虑以下几点:

  • 分片键的关联基数。
  • 分片键值出现的频率。
  • 潜在的分片键是否单调递增。
  • 分片查询模式。
  • 分片键限制。

如果定期更改文档的分片键值,以使该值位于不同分片拥有的分片键范围,则可能会影响集群性能,因为在分片之间迁移文档会涉及额外的资源。

分片键的关联基数决定了负载均衡器可以创建的最大数据段数。尽可能选择关联基数高的分片键。关联基数低的分片键会降低集群中水平扩展的有效性。在任何给定时间,每个唯一的分片键值只能存在于一个数据段上。

现在考虑一个数据集,其包含带有continent字段的用户数据。如果选择在continent上进行分片,则分片键的关联基数将为7。关联基数为7意味着分片集群内的数据段不能超过7个,每个数据段存储一个唯一的分片键值。这也会将集群中的有效分片数限制为7,即添加7个以上的分片不会带来任何好处。

下图展示了使用字段X作为分片键的分片集群。如果X的关联基数较低,则插入操作的分布情况会是图中展示的这样。

在这里插入图片描述
如果数据模型要求在关联基数较低的键上进行分片,可考虑使用字段的复合索引来增加关联基数。关联基数低的分片键本身并不保证数据在分片集群中均匀分布。分片键的频率以及单调变化的分片键值的深度也有助于数据的分布。

分片键频率表示给定分片键值在数据中出现的频率。如果多数文档仅包含可能的分片键值的一部分,则存储具有这些值的文档的数据段可能会成为集群内的瓶颈。此外,随着这些数据段的增长,它们可能会成为不可分割的数据段,因为它们无法被进一步分割。这会降低集群内横向扩展的有效性。

下图演示了使用字段X作为分片键的分片集群。如果X的子集值出现频率较高,则插入操作的分布情况会是图中展示的这样,字段X的子集值(12)会集中在一个分片上。
在这里插入图片描述
如果数据模型要求在具有高频值的键上进行分片,可以考虑使用唯一或低频率值的复合索引。低频率的分片键本身并不保证数据在分片集群中均匀分布。分片键的关联基数以及单调变化的分片键值的潜力也有助于数据的分布。

关于单调变化的分片键内容,针对单调增加或减少的值的分片键,更有可能将插入操作分布到集群内的单个数据段中。之所以发生这种情况,是因为每个集群都有一个捕获范围上限为maxKey的数据段,maxKey始终是所有值中最高的值。同样,还有一个捕获范围下限为minKey的数据段,minKey始终是所有值中最低的值。

如果分片键值总是增加的,则所有新的插入操作都会路由到以maxKey为上限的数据段。如果分片键值总是减少的,则所有新的插入操作都会路由到以minKey为下限的数据段。包含该上下限数据段的分片会成为写入操作的瓶颈。

为优化数据分布,包含全局maxKey(或minKey)的数据段不会位于同一分片。在分割数据段时,具有maxKey(或minKey)数据段的新数据段会位于不同的分片。

下图演示了使用字段X作为分片键的分片集群。如果X的值单调递增,则插入操作的分布情况可能会是图中展示的这样,字段X的子集值(在大于或等于20上单调递增)会集中在一个分片上。
在这里插入图片描述
如果分片键值单调递减,则所有插入操作都将改为路由到Chunk A。如果数据模型需要对单调变化的键进行分片,可以考虑使用哈希分片。对于不产生单调变化的分片键,本身并不保证数据在分片集群中均匀分布。分片键的关联基数和频率也有助于数据的分布。

关于分片查询模式的使用,理想的分片键可将数据均匀地分布在分片集群中,同时也有利于实施常见的查询模式。在选择分片键时,可考虑最常使用的查询模式以及给定分片键能否涵盖这些模式。

在分片集群中,如果查询包含分片键,则mongos仅会将这些查询路由到包含相关数据的分片。如果查询不包含分片键,则这些查询会被广播到所有分片以进行评估。这些类型的查询称为“分散-聚合”查询。每个请求涉及多个分片的查询效率较低,并且向集群添加更多分片时无法实现线性扩展。

这不适用于针对大量数据进行操作的聚合查询。在这些情况下,​“分散-聚合”查询可能是一种有用的方法,因为它允许查询在所有分片上并行运行。

3.4、更改分片键

在MongoDB数据库中,理想的分片键可以让MongoDB在整个集群中均匀地分发文档,同时也有利于实施常见的查询模式。另外,不理想的分片键会导致数据分布不均匀,并产生以下问题:

  • 巨型数据块。
  • 负载分布不均。
  • 查询性能随时间推移下降。

为了解决上述这些问题,MongoDB支持变更分片键:

  • 从MongoDB 5.0版本开始,可以通过更改集合的分片键对集合重新分片。
  • 可以通过向现有分片键添加后缀字段来优化分片键。

在对数据集进行重新分片时,数据分布修复最为有效。如果想改进数据分布,并且集群满足重新分片的条件,则应该将集合重新分片,而不是优化分片键。如果集群不符合重新分片的条件,则应优化分片键。

优化集合的分片键可以实现更细粒度的数据分布,并且可以解决现有键由于关联基数不足而导致巨型数据块的问题。

注意,不要修改任何当前分片键字段的范围或哈希类型,这会导致数据不一致。例如,请勿将分片密钥从{customer_id: 1}修改为{customer_id: “hashed”,order_id: 1}。从MongoDB 5.0版本开始,可以通过为集合提供新的分片键来对集合重新分片。

如果要优化集合的分片键,可以使用refineCollectionShardKey命令。refineCollectionShardKey会向现有键添加一个或多个后缀字段以创建新的分片键。例如,在一个test数据库中有一个orders集合,其分片键为{customer_id: 1},可以使用refineCollectionShardKey命令将分片键更改为新的分片键{customer_id: 1, order_id: 1},具体代码如下:
在这里插入图片描述

3.5、对集合重新分片

在MongoDB数据库中,理想的分片键可以让MongoDB在整个集群中均匀地分发文档,同时也有利于实施常见的查询模式。而如果由于数据分配不平均,不太理想的分片键可能会导致性能或扩展问题。

从MongoDB 5.0版本开始,可以通过更改集合的分片键来更改集群中的数据分配情况。从MongoDB 7.2版本开始,可以使用相同的分片键对集合进行重新分片,从而允许在不更改分片键的情况下重新分发数据以包含新分片或不同区域。

3.5.1、重新分片之前需要满足的要求

在对集合进行重新分片之前,请确保满足以下要求:

  • 应用程序允许受影响的集合块进行两秒钟的写入。在写入受阻期间,应用程序的延迟会增加。如果工作负载无法满足此要求,可考虑优化分片键。
  • 数据库符合以下资源要求:

确保每个分片上的可用存储空间至少是重新分片的集合大小及其总索引的集合大小的两倍,再除以分片数量。

storage_req = ( ( collection_storage_size + index_size ) * 2 ) / shard_count

例如,假设一个集合包含2TB数据,并具有分布在4个分片上的400GB索引。要对此集合执行重新分片操作,每个分片都需要1.2TB的可用存储空间。

1.2 TB storage = ( ( 2 TB collection + 0.4 TB index ) * 2 ) / 4 shards

为了满足存储要求,可能需要在重新分片操作期间升级到下一个存储层。操作完成后,可以缩减规模。

确保I/O容量低于50%。

确保CPU负载低于80%。

  • 必须重写应用程序的查询,才能同时使用当前分片键和新的分片键。如果应用程序可以容忍停机,则可以执行以下步骤来避免重写应用程序的查询,从而同时使用当前分片键和新的分片键:

停止应用程序。

重写应用程序以使用新的分片键。

等待重新分片完成。要监控重新分片进程,可以使用$currentOp管道阶段。

部署重写的应用程序。

  • 如果没有正在运行的索引被创建,使用db.currentOp()检查是否有任何正在运行的索引被创建,具体代码如下:
    在这里插入图片描述
    在结果文档中,如果inprog字段值为空数组,则表示没有正在运行的索引被创建,具体代码如下:
    在这里插入图片描述
    注意:重新分片是一个密集型写入操作,会显著提高操作日志的生成速率。为了避免操作日志无限增长,建议设置固定的操作日志大小,并适当增加操作日志的大小,以最大程度减少一个或多个从节点因操作日志溢出而过时的可能性。

在集合重新分片操作中,分片可以是发送分片,也可以是接收分片。发送分片是指当前存储分片集合数据段的分片,而接收分片是指根据分片键和区域存储分片集合新数据段的分片。分片可以同时作为发送分片和接收分片。除非使用区域划分,否则发送分片和接收分片是相同的。

3.5.2、重新分片的操作步骤

配置服务器的主节点始终担任重新分片协调器的角色,并负责启动重新分片操作的每个阶段。重新分片的具体步骤如下。

步骤1:开始重新分片操作。

连接到mongos时,发出reshardCollection命令,指定要重新分片的集合和新分片键,具体代码如下:
在这里插入图片描述
MongoDB将阻止写入的最大秒数设置为两秒,并且重新开始分片操作。

步骤2:监控重新分片操作。

要监控重新分片操作,可以使用$currentOp管道阶段,具体代码如下:
在这里插入图片描述
注意,想要查看更新的值,需要连续运行前面的管道。

步骤3:完成重新分片操作。

在整个重新分片进程中,完成重新分片操作的预计时间(remainingOperationTimeEstimatedSecs)会减少。当估计时间低于两秒时,MongoDB会阻止写入并完成重新分片操作。在完成重新分片操作的估计时间低于两秒之前,重新分片操作默认不会阻止写入。在写入受阻期间,应用程序的延迟会增加。重新分片进程完成后,重新分片命令会返回ok: 1,具体代码如下:
在这里插入图片描述

如果要查看重新分片操作是否成功完成,需要检查sh.status()方法的输出,具体代码如下:

sh.status()

sh.status()方法的输出包含小部分数据库。如果重新分片成功完成,则输出会列出集合的新分片键值,具体代码如下:
在这里插入图片描述
如果重新分片的集合使用Atlas Search,则在重新分片操作完成后,搜索索引变得不可用。重新分片操作完成后,需要手动重新生成索引。

MongoDB8.0新特性实战:向量搜索、时序集合与分片集群优化 MongoDB 8.0新特性实战摘要 MongoDB 8.0推出原生向量搜索功能,使文档数据库具备AI能力。新特性包括: 向量搜索:支持存储文档和向量,实现语义检索,减少传统RAG架构的复杂度 时序集合优化:增强时间序列数据处理能力 分片集群改进:提升大规模数据管理性能 实战示例展示了: 创建向量索引(支持cosine/euclidean/dotProduct相似度算法) 插入带OpenAI嵌入向量的文档 执行向量相似度搜索(支持预过滤) 实现混合搜索(结合向量和全文检索) 这些特性使MongoDB成为AI 阅读详情

相关推荐

MongoDB 8.0 Ubuntu安装

信息已核实:MongoDB 8.0 官方源支持 Ubuntu 24.04(noble)/22.04(jammy)/20.04(focal),生产环境推荐副本集形态。先给出三种部署形态的架构示意,再给完整的可执行步骤。:单机适合开发/测试,副本集(≥3 节点)是生产基线,数据量/写入压力大时再上分片集群。全部通过官方apt 源安装,命令可直接复制执行。

NLP与推荐算法 195

MongoDB-分片

目录一、分片概念二、为何使用分片?2.1、分片特点2.2、为何分到多个chunk上可以提升读写能力??三、分片集群Sharded cluster3.1、分片键3.2、分片键索引四、分片分类五、分片键策略与选择逻辑5.1、分片键的限制5.2、分片键的选择逻辑5.3、分片键公式{coarseLocality:1,search:1}六、分片后对查询、写入影响七、分片优势八、分片中的排序规则九、分片中集群部署。

jlq270400的博客 4556

基于YOLO11的垃圾分类AI模型训练实战

通过这次实战,我们成功训练出了一个高性能的垃圾分类AI模型。项目展示了从数据准备、模型训练到结果分析的完整流程,为AI在环保领域的应用提供了有价值的参考。项目文件结构│ ├── best.pt # 最佳模型权重│ └── last.pt # 最新模型权重├── results.csv # 详细训练数据├── results.png # 训练曲线图├── confusion_matrix.png # 混淆矩阵└── args.yaml # 训练参数配置。

lydz1的博客 1657

8.MongoDB之分片集群

一、mongodb分片与各角色与概念介绍 Mongodb的分片机制是mongodb数据库的核心机制,也是其可用性高,扩展性好的原因,分片—sharding 的意思就是将数据库数据分散存贮到不同的服务器上,来缓解高并发访问,均衡负载。举例来说一下,比如说一个collection有TB级别的数据,在传统方式下如果有两个线程要访问其中的数据,即使这个线程访问的数据是不同的,为保证同步需要排队等待,分片机制可以很好的解决这个问题,分片机制其实就是分布式的集群,比如现在有五台服务器作为集群,mongodb可以将一.

mijichui2153的博客 1万+

【温室气体数据集】CAMS 发布的温室气体(GHG)数据集总结

【温室气体数据集】CAMS 发布的温室气体(GHG)数据集总结

WW、forever的博客 555

把 SAP ABAP BDC 跑得又快又稳:从 SHDB 录屏到可上线的批量上传程序(含 MM01 案例与源码)

SAP BDC批量数据迁移实践 摘要:本文介绍了SAP系统中BDC(Batch Data Communication)技术在数据迁移中的应用。文章首先对比了Session method和CALL TRANSACTION method两种实现方式的特点及适用场景,重点推荐使用Session method进行主数据批量处理。然后详细讲解了通过SHDB工具录制MM01事务创建物料主数据的完整流程,包括如何生成基础BDC代码。最后展示了将录制的脚本改造为可批量处理文件数据的实用程序,核心改动包括定义数据结构、读取文

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 322

mongodb分片

一.什么是mongodb分片,有什么作用? mongodb分片就是将大型集合分割到不同的服务器上,它可以自动且均衡的分配数据。它一般是针对特别大的需求,比如一个集合需要非常的大,几百个G。分片到10个服务器之后,每个服务器维护几十个G的数据。如果不是集合非常的大,而是库非常的多,可以不使用分片,可以向mysql一样,把不同的库指定给不同的服务器就可以。 二.mongodb分片的原理 mongodb...

qq_37369726的博客 8535

PyTorch实战:卷积神经网络详解+Python实现卷积神经网络Cifar10彩色图片分类

PyTorch可以说是三大主流框架中最适合初学者学习的了,相较于其他主流框架,PyTorch的简单易用性使其成为初学者们的首选。这样我想要强调的一点是,框架可以类比为编程语言,仅为我们实现项目效果的工具,也就是我们造车使用的轮子,我们重点需要的是理解如何使用Torch去实现功能而不要过度在意轮子是要怎么做出来的,那样会牵扯我们太多学习时间。以后就出一系列专门细解深度学习框架的文章,但是那是较后期我们对深度学习的理论知识和实践操作都比较熟悉才好开始学习,现阶段我们最需要的是学会如何使用这些工具。

master_hunter的博客 8933

详解MongoDB 分片策略

MongoDB 分片功能可以在多个服务器上分散存储数据集,实现水平扩展。本文档将介绍 MongoDB 的分片策略以及如何设置分片环境。

weixin_59801183的博客 4580

基于树莓派4B设计的厨房环境监测系统_368

本项目设计并实现了一种基于树莓派4B的厨房环境监测系统,提升厨房使用过程中的安全性与智能化水平。系统采用树莓派4B作为主控核心,集成DHT11温湿度传感器、MQ2烟雾传感器、火焰传感器、光敏传感器、水滴检测传感器等多种传感器,实现对厨房环境温湿度、烟雾、火焰、光照与溢水等参数的实时监测,并通过蜂鸣器进行本地报警。系统通过WIFI连接互联网,利用MQTT协议将环境数据上传至华为云物联网平台,实现远程可视化监控。

415

乐企增值税及附加税费(一般纳税人适用)申报表填报能力说明文档V3.009

申报表填报,是指企业在自有业务系统中将算税结果数据按预填规则要求加工汇总后,进行申报表填报的过程。申报表填报前对纳税申报所需的前提条件进行校验。校验通过后,应用前序算税结果数据及预填规则进行纳税申报表预填,生成申报表数据。申报表数据通过申报业务规则校验后,经纳税人确认即完成申报表填报业务。

记录点滴 345

全网最详细MongoDB8分片副本集群部署

北京,2024年10月16日——MongoDB(纳斯达克股票代码:MDB)近日宣布MongoDB 8.0已全面可用,这是全球倍受欢迎的文档型数据库MongoDB迄今为止性能最强的版本。MongoDB 8.0的优化使整体吞吐量提高了32%,MongoDB 8.0时间序列数据聚合的处理速度提高了200%以上MongoDB 8.0数据分发速度提高了50倍,MongoDB 8.0单分片集群成本降低了50%。MongoDB 8.0吞吐量提升32%MongoDB 8.0批量写入速度提升56%

ToString_1024的博客 2185

SOUL.md 人格定制的 7 个高阶技巧:Hermes Agent 精准控制 AI 行为模式

揭示 SOUL.md 的本质是行为契约而非人格设定,介绍7个围绕边界约束的高阶技巧,包括用上下文锚点(INPUT SCOPE/OUTPUT TARGET/CONSTRAINTS)替代角色描述、动态渲染锚点适配CI流程等,显著降低token消耗与人工review耗时。

weixin_42520239的博客 251

mongoDB分片集群部署 version5.0.8

mongoDB分片集群部署 1.MongoDB背景 一款完善的分布式文档数据库 一款非常出名的NoSQL 数据库 可以支撑着每天近千万级 QPS 峰值读写,数万亿级数据量存储服务 具有高性能、动态扩缩容、高可用、易部署、易使用、海量数据存储等方面优势很大 2.高可用架构 2.1 Master-Slave 模式 Master-Slave 由主从角色构成: Master ( 主 ):可读可写,当数据有修改的时候,会将 Oplog 同步到所有连接的Salve 上去。 Slave ( 从 ):

weixin_41904935的博客 876

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MongoDB的分片集群(三) :mongodb6.x分片集群离线搭建&开启安全认证

MongoDB的分片集群(三) :mongodb6.x分片集群离线搭建&开启安全认证

SRE成长记 1434

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

MongoDB 用东北村里大喇叭,分析8.0的野心

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2600人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 )(1 2 3 4 5 6群均已爆满,新人进7群,8群,...

sql server的专栏 1201

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Mongodb7 分片集群的搭建

mongo版本:7.0.5操作系统:centos8 stream。

xgw的专栏 1899

MongoDB 8.0 全新登场:究竟如何?

据 MongoDB 称,这个广受欢迎的NoSQL 数据库的最新版本提供了更快的重新分片功能、读取速度最高可提升 36%,批量插入速度最高可提升 56%。“这是个好消息,但我们先别太激动。新版本受到了社区的好评,有人表示其性能有了显著提升,尤其是聚合方面的改进以及嵌入式配置服务器在降低成本方面发挥了重要作用,鼓励用户尝试。“我们的内部构建系统——我们的软件开发人员每天都在使用——构建在 MongoDB 之上,当我们升级到 MongoDB 8.0 时,我们看到查询延迟下降了大约 75%。

EasyOps_DevOps的博客 1197

MongoDB 7 分片副本集升级方案详解(下)

MongoDB 7 分片副本集升级方案详解(下)

虽非技冠群英首,愿与同道共长歌; 大鹏一日同风起,扶摇直上九万里; 1258

mongodb分片集群搭建

mongodb 5.0之后(包括5.0) 开始使用需要使用 AVX 指令集,需要服务器配置支持AVX指令集最小搭建一个分片集群,需要至少10台设备,例如:192.168.2.111:27031 (分片1-主)192.168.2.112:27031 (分片1-副)192.168.2.117:27031(分片1-仲裁)192.168.2.113:27131 (分片2-主)192.168.2.114:27131 (分片2-副)192.168.2.117:27131 (分片2-裁决)

weixin_44728369的博客 1639

MongoDB4.0 分片集群+复制集+读写分离详细搭建教程

最近由于要存储大规模结构化数据,想到了MongoDB的口号For giant ideas,于是假设了下图架构的一个mongoDB集群。 先说说选型的原因,结构化数据很多数据库都可以存储,最常用的是mysql,而且mysql的集群也屡见不鲜。比如mycat或者mysqlproxy这种数据库网关就可以放置在多个普通的mysql服务器前面,或者像腾讯退出的TDSQL这种商业版本也是有内置数据库网关的,...

lvshaorong的博客 7918

MongoDB 8.0——事务

例如,在电子商城场景中,当顾客下单购买某件商品时,除生成订单外,还应该同时扣减商品的库存,这些操作应该被作为一个整体的执行单元进行处理,否则会产生数据不一致的情况。事务中的任何操作失败,事务都会中止,事务中所进行的所有数据更改将被丢弃,并且不会变得可见。MongoDB数据库在事务中创建集合和索引,如果事务不是跨分片写入事务,则可以在分布式事务中执行创建集合的操作,并在先前同一事务中创建的新空集合上创建索引。在下面的代码示例中,包含在出现暂时性错误时重试事务的逻辑,以及在出现未知提交错误时重试提交的逻辑。

吴声子夜歌的博客 233

MongoDB 8.0全面解析:性能提升、备份恢复与迁移指南

MongoDB 8.0带来全方位性能提升,读写性能最高提升200%,批量写入加速56%,内存碎片减少18%。版本升级包含45+项优化:内核级TCMalloc升级改善内存管理,分片集群性能提升50倍,增强的时间序列处理能力,以及可查询加密等安全功能。新版本在混合读写、并发写入等场景均有显著优化,为物联网、金融分析等场景提供更强支持。迁移建议评估业务需求,充分利用新版性能优势。

qq_34478339的博客 2227
上一篇: MongoDB 8.0——副本集
下一篇: MongoDB 8.0——存储
吴声子夜歌
博客等级 码龄9年 2687粉丝 2266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值