左手小指和无名指发麻是什么原因| 人类的祖先是什么生肖| 月经期间喝红糖水有什么好处| 小孩发烧呕吐是什么原因| 尿液有白色絮状物是什么原因| 人为什么要洗澡| 让姨妈推迟吃什么药| 新生儿喝什么奶粉好| 雷达是什么| 失焦是什么意思| 英姿的动物是什么生肖| 杞菊地黄丸治什么病| 尊字五行属什么| hpv16阳性是什么意思| 普洱是什么茶| 92什么意思| 蓝色属于什么五行属性| 日央读什么| 草是什么意思| 胎盘分级0级什么意思| 人为什么会打哈欠| 处女座属于什么星象| 孩子睡觉出汗多是什么原因| 侍郎是什么官| 养胃吃什么食物好| 小孩肠胃炎吃什么药| 肚脐眼下面痛什么原因| 婴儿黄疸母亲忌口什么| 柳枝什么的什么的| 荷尔蒙是什么东西| 男性阴虱用什么药最好| 公历是什么历| 爆粗口是什么意思| 古代医生叫什么| 皮肤过敏吃什么药好| 真菌孢子是什么| 生的反义词是什么| 什么是血氧| 喝红糖水有什么好处和坏处| 什么东西最伤肾| 血小板低有什么危险| rmb是什么货币| 吃什么会自然流产| 鸡杂是什么| lomo卡是什么| 血管是什么颜色的| 桂圆跟龙眼有什么区别| 小学什么时候放暑假| 植物园里有什么植物| 荒唐是什么意思| 小猫什么时候断奶| 六月八号是什么星座| 鸽子是什么意思| 小孩突然头疼是什么原因| 咳嗽吃什么水果好| 金箔金命是什么意思| puppies什么意思| ntl是什么意思| 吃生南瓜子有什么好处| 流鼻涕咳嗽吃什么药| 无国界医生是什么意思| 尿蛋白十一是什么意思| 所言极是是什么意思| 土色是什么颜色的图片| 脾虚便秘吃什么中成药| 旁风草长什么样| 祖宗是什么意思| 舅舅和外甥女是什么关系| 怀孕了吃什么| 为什么怀不上孩子| 什么牌子的大米好吃| 大宗商品是什么意思| 卡介疫苗什么时候打| 烧心是什么原因造成的| 身心合一是什么意思| 2月19日是什么星座| 支气管哮喘是什么原因引起的| 男戴观音女戴佛有什么讲究| 吃什么能流产| 不怕热是什么体质| 洋生姜的功效与作用是什么| 6月30日是什么座| 两肺纹理增多是什么意思| 宇宙的外面是什么| 心悸什么意思| 心肌缺血用什么药| 血红蛋白是查什么的| 肝脏b超能检查出什么| 违拗是什么意思| 吃什么容易长高| 920是什么意思| 赤藓糖醇是什么| 红色代表什么| 狮子头是什么肉| 干什么挣钱最快| 146是什么意思| 胎盘低置是什么原因造成的| 卷柏是什么植物| 娇气是什么意思| 修女是干什么的| 自闭症是什么意思| 清关中是什么意思| 排卵试纸两条杠是什么意思| 肠镜前一天可以吃什么| 乙肝有什么明显的症状| 经期吃什么食物比较好| 气运是什么意思| 什么命的人会丧偶| 唐氏筛查和无创有什么区别| headache什么意思| 1978年是什么命| 吃什么子宫肌瘤会消除| 梦见自己怀孕是什么意思| 于是什么意思| 梦见死人复活是什么意思| 农历七月初七是什么节日| mrmrs是什么牌子| 鱼泡是什么| 身体出油多是什么原因| 乳头痒是怎么回事是什么原因| 市辖区是什么意思| 离婚带什么证件才能办理| 尊巴是什么| 1995年的猪五行属什么| 籺是什么意思| 爷俩是什么意思| 备孕需要注意些什么| 子宫肌瘤有什么症状表现| 下午4点多是什么时辰| 腰斩什么意思| 摸头杀是什么意思| 马可以加什么偏旁| 排卵试纸两条杠是什么意思| 阳盛阴衰是什么意思| 肉丝炒什么菜好吃| 什么又绿江南岸| 头不由自主的轻微晃动是什么病| 排卵期身体有什么症状表现吗| 钥匙代表什么生肖| 脱发吃什么药| 什么字笔画最多| msms筛查是什么意思| 胎芽是什么| 七上八下是什么生肖| 小姑独处是什么意思| 催乳素高是什么原因| 山药什么季节成熟| 肺结节是什么原因| 甜瓜是什么瓜| 亡羊补牢说明什么道理| 爸爸的爸爸叫什么| 敏字五行属什么| 风采依旧是什么意思| 造纸术是什么时候发明的| 女性内分泌失调吃什么药| 枸杞是补什么的| 什么中药补肾最好| 水烧开后有白色沉淀物是什么| 电脑关机快捷键是什么| 6.14什么星座| 无蔗糖是什么意思| 游山玩水是什么意思| 吃红枣有什么好处和坏处| 剪刀是什么生肖| 打鼾挂什么科| 药师佛手里拿什么法器| 俞伯牙摔琴谢知音摔的是什么乐器| 中药学是干什么的| 能力很强的动物是什么| 锅包肉是什么肉| 肝功能异常是什么意思| 水由什么构成| 什么样的西瓜甜| 早上9点半是什么时辰| 手机飞行模式是什么意思| 肌酐高是什么原因引起的| 孤独终老什么意思| 芡实和什么搭配最好| 胃疼有什么办法缓解| 圆珠笔是什么笔| 风湿挂什么科| 右脚浮肿预示着什么| 吃什么能长胖| 畏首畏尾是什么意思| 前列腺增生吃什么药| 排查是什么意思| 六三年属什么生肖| 敬邀是什么意思| 可乐杀精是什么意思| 心尖尖是什么意思| 梦见好多水果是什么预兆| 夏至是什么生肖| 心脏逆钟向转位是什么意思| 面粉和淀粉有什么区别| 双相情感障碍吃什么药| 乳腺增生结节吃什么药效果好| 1974年是什么命| 小腿肿看什么科| 心理素质差是什么原因| 尿酸高吃什么好| 社保缴费基数和工资有什么关系| 钾是什么东西| 六月初六是什么星座| 嗓子总有痰吃什么药| 金银花洗澡对婴儿有什么好处| 凌空什么什么| 叶酸片是治什么的| 6月份种什么菜| 7月2日什么星座| 针对是什么意思| 貂蝉属什么生肖| 2月18号是什么星座| 失眠吃什么中药调理效果快| 主动权是什么意思| 小布丁是什么意思| lalabobo是什么牌子| 鸡为什么吃沙子| 春暖花开是什么生肖| 夜尿多是什么原因引起的| 空调出现pl是什么意思| 25羟基维生素d是什么| 92年五行属什么| 软著有什么用| 三伏的伏是什么意思| 一天两包烟会导致什么后果| 不举是什么意思| 辣乎乎的什么| 疝气是什么意思| 压箱底是什么意思| 静夜思是什么季节| 月经推迟挂什么科| 吃菌子不能吃什么| 致五行属什么| 高血压和高血脂有什么区别| 甲鱼吃什么| 为国为民是什么生肖| 囟门凹陷是什么原因| 桔梗是什么东西| 碧字五行属什么| 高原反应什么症状| 男孩流鼻血是什么原因| 燕窝什么时候吃好| 女人被插入是什么感觉| 姐姐的孩子叫什么| 下午六点是什么时辰| 头发容易油是什么原因| 明五行属什么| 户主有什么权利| 做包子用什么面粉| 高碎是什么茶| 吃什么可以补精| 黄金发红是什么原因| 纳帕皮是什么皮| 荸荠是什么| 白细胞高是什么意思| 右眼跳是什么原因| 车抛锚是什么意思| 儿童内分泌科检查什么| 便秘看什么科| 不良人是什么| 女人为什么会叫床| 钥匙是什么意思| porsche是什么牌子的车| 心静自然凉是什么意思| 百度
Docs 菜单
Docs 主页
/
数据库手册

转发《关于召开西安建筑科技大学思想政治教育研...

分片是一种跨多台机器分布数据的方法。MongoDB 使用分片来支持超大数据集和高吞吐量操作的部署。

存在大型数据集或高吞吐量应用程序的数据库系统可能对单个服务器的容量构成挑战。例如,较高的查询速率可能会耗尽服务器的 CPU 容量。大于系统 RAM 的工作集大小会对磁盘驱动器的 I/O 容量造成压力。

有两种方法可解决系统增长问题:垂直扩展和水平扩展。

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

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

MongoDB 支持通过分片进行水平扩展

您可以在用户界面中为托管在 MongoDB Atlas 中的部署进行集合分片

注意

下图描述了分片集群内各组件之间的交互:

用于生产目的的示例分片集群示意图。实际包含 3 个配置服务器、2 个或更多“mongos”查询路由器以及至少 2 个分片。这些分片均为副本集。

MongoDB 在集合级别对数据进行分片,从而将集合数据分布到集群中的分片上。

MongoDB 使用分片键在分片之间分发集合的文档。 分片键由文档中的一个或多个字段组成。

分片集合中的文档可能缺少分片键字段。跨分片分发文档时,缺少的分片键字段将视为具有 null 值,但在路由查询时则不会。有关更多信息,请参阅缺少分片键字段

您在对集合进行分片时会选择分片键。

文档的分片键值决定了其在各分片中的分布。您可以更新文档的分片键值,除非您的分片键字段是不可变的 _id 字段。有关详细信息,请参阅更改文档的分片键值

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

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

提示

MongoDB 将数据分片为数据段。每个数据段都有一个基于分片键、包含下限且不包含上限的范围。

为了实现数据在集群中所有分片上的均匀分布,负载均衡器会在后台运行,以便在各分片之间迁移范围

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

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

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

按副本集部署配置服务器和分片,可提高可用性。

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

需要对分片集群基础架构的需求和复杂性进行仔细规划、执行和维护。

虽然您可在后续对集合重新分片,但请务必仔细考虑分片键的选择,以免出现可扩展性与性能问题。

要了解集合分片操作的要求和限制,请参阅分片集群中的操作限制。

如果查询含分片键或复合分片键的前缀,mongos 则会执行广播操作,从而查询分片集群中的所有分片。这些分散/聚集查询可能会长时间运行。

从 MongoDB 5.1 开始,在启动、重新启动或添加含 sh.addShard()分片服务器时,必须设置集群范围的写关注 (CWWC)

如果未设置 CWWC,并且将分片配置成默认写关注{ w : 1 },将无法启动或添加分片服务器并返回错误。

请参阅默认写关注计算,详细了解如何计算默认写关注。

注意

如果您与 MongoDB 签订了有效的支持合同,请考虑联系您的客户代表,以获取分片集群规划和部署方面的帮助。

数据库可混合使用分片和未分片集合。分片集合会进行分区并分布在集群的各个分片上。分片片集合可以位于任何分片上,但不能跨分片。

主分片的示意图。主分片包含非分片集合以及分片集合中文档的数据段。分片 A 为主分片。

您必须连接到 mongos 路由器才能与分片集群中的任意集合进行交互。其中包括分片非分片集合。客户端永不应连接到单个分片来执行读取或写入操作。

应用程序/驱动程序向 mongos 发出查询以进行非分片集合和分片集合的图表。未显示配置服务器。

您可像使用 mongosh 或 MongoDB 驱动程序以连接到 mongod 一样来连接 mongos

注意

从MongoDB 8.0开始,您只能在分片上运行某些命令。 如果您尝试直接连接到分分片并运行不受支持的命令, MongoDB将返回错误:

"You are connecting to a sharded cluster improperly by connecting directly
to a shard. Please connect to the cluster via a router (mongos)."

要直接对分片运行不支持的数据库命令,您必须连接到mongos或具有仅维护的directShardOperations角色。

MongoDB 支持两种分片策略,可在多个分片集群之间分配数据。

哈希分片涉及计算分片键字段值的哈希值。然后,根据哈希分片键值为每个数据段分配一个范围。

提示

在使用哈希索引解析查询时,MongoDB 会自动计算哈希值。应用程序无需计算哈希值。

基于哈希的分割示意图。

虽然分片键的范围可能“相近”,但它们的哈希值却不太可能位于同一数据段。基于哈希值的数据分配可促进更均匀的数据分布,尤其是在分片键单调变化的数据集中。

然而,哈希分布意味着对分片键进行基于范围的查询时,不太可能以单个分片为目标,从而导致更多的集群范围的广播操作

请参阅哈希分片以了解更多信息。

范围分片涉及根据分片键值将数据划分为多个范围。然后,根据分片键值为每个数据段分配一个范围。

分片键值空间被分割为较小范围或数据块的示意图。

具有“相近”数值的一系列分片键更有可能位于同一个数据段上。这允许进行有针对性的操作,因为 mongos 只能将操作路由到包含所需数据的分片。

范围分片的效率取决于所选分片键。考虑不周的分片键可能会导致数据分布不均,从而抵消分片的某些好处甚或导致性能瓶颈。请参阅针对基于范围的分片的分片键选择

有关更多信息,请参阅范围分片

区域可帮助改善跨多个数据中心的分片集群的数据局部性。

在分片集群中,可以根据分片键创建分片数据区域。您可以将每个区域与集群中的一个或多个分片相关联。一个分片可以与任意数量的区域关联。在均衡的集群中,MongoDB 仅将区域覆盖的数据段迁移到与该区域相关联的分片。

每个区域涵盖分片键值的一个或多个范围。某一区域所覆盖的每个范围始终包括其下边界,而不包括其上边界。

分片集群中基于可用区域的数据分布图
点击放大

为要覆盖的区域定义范围时,必须使用分片键中包含的字段。如果使用的是复合分片键,此范围则须包含分片键的前缀。请参阅区域中的分片键以了解更多信息。

在选择分片键时,应考虑将来可能使用区域的情况。

提示

在对空的或不存在的集合进行分片之前设置区域和区域范围可更快地设置分区分片。

请参阅区域以了解更多信息。

使用带 collation : { locale : "simple" } 选项的 shardCollection 命令对具有默认排序规则的集合进行分片。要成功进行分片,必须满足以下条件:

  • 集合必须具有其前缀为分片键的索引

  • 索引必须具有排序规则 { locale: "simple" }

在使用排序规则创建新的集合时,请确保在对集合进行分片之前满足这些条件。

注意

对分片集合的查询会继续使用为集合配置的默认排序规则。要使用分片键索引的 simple 排序规则,请在查询的排序规则文档中指定 {locale : "simple"}

有关分片和排序规则的更多信息,请参阅 shardCollection

变更流可用于副本集和分片的集群。 变更流允许应用程序访问权限实时数据更改,而不会出现oplog的复杂性和风险。 应用程序可以使用变更流订阅一个或多个集合上的所有数据更改。

随着分布式事务的引入,多文档事务可在分片集群上使用。

在事务进行提交前,在事务中所做的数据更改在事务外不可见。

不过,当事务写入多个分片时,并非所有外部读取操作都需等待已提交事务的结果在各个分片上可见。例如,如果事务已提交并且写入 1 在分片 A 上可见,但写入 2 在分片 B 上尚不可见,则读关注 "local" 处的外部读取可以在不看到写入 2 的情况下读取写入 1 的结果。

有关分片如何与聚合配合使用的更多信息,请阅读实用 MongoDB 聚合电子书中的“分片”章节。

后退

本地数据库

获得技能徽章

免费掌握“分片策略”!

了解详情

在此页面上

十二月二十号是什么星座 石英岩玉是什么 束在什么情况下读su reading是什么意思 黑眼圈是什么原因造成的
腌肉放什么调料 菜板什么木材最好 屈原是什么诗人 冷漠什么意思 馒头吃多了有什么坏处
香叶是什么树的叶子 交公粮是什么意思 蟑螂喜欢吃什么东西 口腔溃疡挂什么科室 什么的果实
盆腔炎检查什么项目 王安石号什么 运动后出汗多是什么原因 气血不足吃什么好 抗缪勒氏管激素是检查什么的
牛肉和什么包饺子好吃hcv7jop5ns1r.cn 蛤蟆吃什么hcv8jop8ns8r.cn 初心不改是什么意思hcv9jop0ns5r.cn 12月10日是什么星座luyiluode.com 樱桃有什么营养hcv9jop5ns0r.cn
梦见很多小蛇是什么意思huizhijixie.com 发量多的女生适合什么发型hcv9jop5ns2r.cn 哀大莫过于心死是什么意思weuuu.com 湿热吃什么好hcv9jop0ns9r.cn 氟化钠是什么bfb118.com
豁口是什么意思hcv8jop7ns9r.cn 缺维生素b有什么症状tiangongnft.com 更年期失眠吃什么药调理效果好hcv9jop7ns1r.cn rh血型阳性是什么血型hcv9jop5ns3r.cn 晚上睡觉阴部外面为什么会痒hcv9jop1ns5r.cn
痰多咳嗽是什么原因hcv8jop0ns6r.cn 尿气味重是什么原因hcv8jop0ns2r.cn 太学是什么意思hcv8jop9ns4r.cn 生小孩有什么补贴政策hcv8jop3ns2r.cn Continental什么牌子hcv9jop0ns2r.cn
百度