Mongodb使用心得

来源:互联网 发布:快速排序 php 编辑:程序博客网 时间:2024/06/13 11:49

最近一直在使用Mongodb,项目中使用都是单机作为数据库存储海量数据。

曾经用128G内存的服务器安装一个Mongodb实例的作为数据库,把数据分月存储,每月数据行数达到2亿,导致内存消耗很快。

内存在未用尽前速度确实很快,3个月以后数据达到6亿,速度明显降下来,以前毫秒级的操作现在需要好几秒,数据开始处理不完。


Mongodb有分片和Replica set,但是前期了解到Mongodb的分片不稳定,所以在项目中未敢使用。

一直也未明白Mongodb的集群有多种方式,主从方式、Replica set、Sharding。

其中Replica set、Sharding是可以组合使用的,主要适合海量数据存储。

使用过程中一直有看到Mongodb与Mysql的比较,并且看到有公司在把项目从Mysql迁移到Mongodb失败的案例,担心Mongodb的不成熟,同时也想试试Mysql是不是也适合海量数据的存储,经常看到一些大公司用Mysql集群存储海量数据的方案,应该是比较成熟的方案可以尝试。


Shard Server: mongod 实例,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,防止主机单点故障

Config Server: mongod 实例,存储了整个 Cluster Metadata,其中包括 chunk 信息。

Route Server: mongos 实例,前端路由,客户端由此接入,且让整个集群看上去像单一数据库,前端应用可以透明使用。

Sharding架构图: