分片是指将数据拆分,将其分散存放在不同的机器上的过程。有时也用分区(partitioning)来表示这个概念。
几乎所有数据库软件都能进行手动分片(manual sharding)。应用需要维护与若干不同数据库服务器的连接,每个连接还是完全独立的。应用程序管理不同服务器上不同数据的存储,还管理在合适的数据库上查询数据的工作。
Mongodb支持自动分片(autosharding),可以使数据库架构对应用程序不可见,也可以简化系统管理。Mongodb自动处理数据在分片上的分布,也更容易添加和删除分片。
当MongoDB存储海量的数据时,一台机器可能不足以存储数据,也可能不足以提供可接受的读写吞吐量。这时,我们就可以通过在多台机器上分割数据,使得数据库系统能存储和处理更多的数据。
使用分片的原因:
-
复制所有的写入操作到主节点
-
延迟的敏感数据会在主节点查询
-
单个副本集限制在12个节点
-
当请求量巨大时会出现内存不足。
-
本地磁盘不足
-
垂直扩展价格昂贵
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试