在MongoDB的世界,做数据分布式存储显得非常简单。只要按照前面介绍的 集群搭建 完成就完全具备了数据分布式存储的要求。
在这里分清几个概念:去前面的文章可以找到介绍
1. 复制集 功能是实现数据备份、灾难恢复,主节点和从节点数据相同。
2. 分片 每个分片由一个或多个复制集构成,功能是数据实现分布。所有分片的数据加起来才构成一个数据库的完整数据。
3. 集群 由1个或多个分片 + Mongos + ConfigServer构成。
当然这这是具备了数据分布式存储的条件。但是真正实现数据分布是需要一个关键因素—"片键"。只有选择合适的片键才能做到数据分布存储。
否则数据仍写在某一个分片上。
例如:选择片键为_id 值为 hashed . 基本实现数据均匀分布。
如果选择时间值为1(升序).数据分片情况基本按时间段去存储。
具体需要怎样去实现数据分布还需要根据业务情况去判定。一个好的片键会提高查询写入等性能。 选择不好的话会严重影响系统性能。希望大家可以慎重选择。
对于片键的选择可以参考下一篇 "如何选择片键"