mongodb sharding key的选择

两个最容易出现的误区

– 递增的sharding key

– 随机的sharding key

Sharding key的选择

递增的Sharding key

– 数据文件挪动少(优势)

– 因为数据文件递增,所以会把insert的写IO永久放在最后一片上,造成最后一片的写热点

– 同时,随着最后一片的数据量增大,将不断的发生迁移至之前的片上

Sharding key的选择

随机的sharding key

– 数据分布均匀,insert的写IO均匀分布在多个片上(优势)

– 大量的随机IO,磁盘不堪重荷

时间: 2024-10-23 16:57:47

mongodb sharding key的选择的相关文章

如何使用容器实现生产级别的MongoDB sharding集群的一键交付

作者介绍 魏世江 希云联合创始人.CTO,负责基于Docker的自动化服务管理平台的后端研发工作.擅长Docker相关技术.PasS平台架构及企业自动化运维系统的设计及开发.创业之前在新浪SAE平台任技术经理,从09年SAE立项至13年下半年的四年多时间里,一直负责SAEPasS平台各种基于Web的服务管理系统的设计及开发,在DevOps方面积累了丰富的经验.Docker引擎代码贡献者,在Docker开源项目中代码贡献量全球排名50名左右. 开篇 Mongo在很早就支持了replication

MongoDB Sharding Cluster分片集群

MongoDB Sharding Cluster 第1章 分片技术简述: sharding是MongoDB用来将大型集合分割高不同服务器上所采用的方法,尽管分片起源于关系型数据库分区,但MongoDB分片完全又是另一回事 和mysql分区方案相比,MongoDB的最大区别在于它几乎能自动完成所有事情,只要告诉MongoDB要分配数据,它就能自动维护数据在不同的服务器之间的均衡 1.1 分片的目的: ?  垂直扩展:增加更多的cpu和存储资源来扩展容量,也属于硬件扩展 ?  水平扩展:将数据集分布

MongoDB Sharding Cluster

第1章 分片技术简述: sharding是MongoDB用来将大型集合分割高不同服务器上所采用的方法,尽管分片起源于关系型数据库分区,但MongoDB分片完全又是另一回事 和mysql分区方案相比,MongoDB的最大区别在于它几乎能自动完成所有事情,只要告诉MongoDB要分配数据,它就能自动维护数据在不同的服务器之间的均衡 1.1 分片的目的: ?  垂直扩展:增加更多的cpu和存储资源来扩展容量,也属于硬件扩展 ?  水平扩展:将数据集分布在多个服务器上,水平扩展即分片 1.2 分片设计思

Mongodb Sharding 分片

Mongodb Sharding 介绍 Sharding in MongoDB 分片组建: Shards(建议用Replica).Query Routers.Config Servers. Shards store the data. To provide high availability and dataconsistency, in a production sharded cluster, each shard is a replica set [1].For more informat

第五部分 架构篇 第二十一章 MongoDB Sharding 架构(实践)

这是一种将海量的数据水平扩展的数据库集群系统,数据分别存储在sharding的各个节点上,使用者通过简单的配置就可以很方便地构建一个分布式MongoDB集群. MongoDB的数据分块成为chunk,每个chunk都是Collection中一段连续的数据记录,通常最大尺寸是200MB,超出则生成新的数据块. 要构建一个MongoDB Sharding Cluster需要以下三个角色: Shard Server 即存储实际数据的分片,每个Shard可以使一个mongod实例,也可以使一组mongo

mongodb sharding

mongod --port 10001 --logpath cluster/log/shard1.log --logappend --shardsvr -dbpath cluster/data/shard1 --directoryperdb --rest mongod --port 10002 --logpath cluster/log/shard2.log --logappend --shardsvr -dbpath cluster/data/shard2 --directoryperdb -

57-4 数据库分片概念及mongodb sharding的实现

04 数据库分片的概念及mongodb sharding的实现 配置环境: node1: 192.168.1.121 CentOS release 6.7 node2: 192.168.1.122 CentOS release 6.7 node3: 192.168.1.123 CentOS release 6.7 [[email protected] ~]# vim /etc/hosts 添加 192.168.1.121   node1 192.168.1.122   node2 192.168

MongoDB Sharding学习理论篇

MongoDB Sharding技术

第五部分 架构篇 第二十章 MongoDB Sharding 架构( 片键选择)

1.选择片键 选择一个好的片键非常关键,如果选择了一个糟糕的片键,它可以立马或者在访问量变大时毁了你的应用程序,也有可能潜伏着,等待着,没准什么时候突然毁了你的应用程序. 另外一方面,如果你选择了一个好片键,只要应用程序还在正常运行,而且只要发现访问量提高就赶紧添加服务器,MongoDB就会确保一直正确地运行下去. 正如在前面所学的,片键决定了数据在集群中的分布情况,因此你会希望存在这样一个片键,它既能把读写分散开来,又能把正在使用的数据保持在一起,这些看似互相矛盾的目标在现实中却往往是可以实现