MongoDB分片技术
介绍
分片(sharding)是MongoDB用来将大型集合分割到不同服务器上采用的方法。分片这种说法起源于关系型数据库。但是实际上非关系型数据库在分片方面相比于传统的关系型数据库更有优势。
与MySQL分库方案对比,MongoDB的最大区别就在于,用户不需要去关心一条数据到底要存储到哪一个机器上,MongoDB会自动帮你完成所有事情,例如自动维护数据在不同服务器之间的均衡。MySQL还需要用户指定分库算法,比如Hash映射
目的
单机的存储一定是有上限的,不论是什么数据库。并且如果将所有的数据都存储在一台存储服务器上,在并发量比较大的情况下,这台存储服务器就很容易挂掉。所以使用分片的目的就是为了将数据尽可能的平摊在多台存储服务器上,减少单台服务器的存储和请求压力
设计思想
分片为应对高吞吐和大数据量的存储提供了方法。
优势
- 对集群进行抽象,让集群"不可见"
MongoDB自带了一个叫mongos的专有路由进程。mongos就是掌握统一入口的路由器。会自动将客户端发送来的请求准确无误的路由到集群中的一个或者多个服务器上,同时把接受到的响应拼装起来发回到客户端。
- 保证集群总是可读写
MongoDB通过多种途径来确保集群的高性能和高可用。将MongoDB的分片和复制功能结合使用,在确保数据分片到多台服务器的同时,对分片数据使用复制功能进行冗余备份,达到可靠性

本文详细介绍了MongoDB的分片技术,包括其目的、设计思想、优势,以及分片集群的架构特点。重点讲解了分片键的选择、分片键策略、范围分片和哈希分片的区别,以及数据分布和均衡的过程。
最低0.47元/天 解锁文章
377

被折叠的 条评论
为什么被折叠?



