MongoDB入门,含分布式配置

1、下载

2、测试单机环境
下载回来的MongoDB是已经编译好的,直接使用即可。

3、使用dbshell深入单机环境
mongo提供的dbshell是一个初步学习MongoDB数据库类型的好工具。

4、MongoDB的update

5、MongoDB的分布式配置
参考资料:
http://hi.baidu.com/lzpsky/blog/item/d59af4276c73c50f908f9d5d.html
http://blog.jokry.me/2010/07/mongodb-distributable-slice/
http://www.cnblogs.com/daizhj/archive/2010/09/07/1820528.html
http://www.iwanna.cn/archives/2010/09/17/5313/
http://www.iwanna.cn/archives/2010/09/17/5310/

结点类型及数据:
Shard:Node,存储了若干Chunks(默认大小100MB)
Config Server:Meta Server,存了Shard信息和Chunk信息。
Router(mongos):暂时解释不清楚,它和Config Server放在一个服务器上就可以了。

可以从上面的post的Collection看出,分片已经开启成功!

6、MongoDB的c客户端使用
上面为止,我们只是完成了对MongoDB的配置,使用的是dbshell,在日常场景中,显然要从c/c++/python/java等编程语言中直接存取MongoDB,下面使用c客户端完成这个工作。

4 thoughts on “MongoDB入门,含分布式配置

  1. coder4omar

    你好,能简单说说为什么配它的分布式而不是它速度不如mysql呢?我自己测的速度不如mysql…当然安装等等确实方便了很多…简单交流下

    Reply
  2. coder4coder4 Post author

    @omar:
    你的数据规模又多大?多少个字段,多少记录?
    首先,有很多参数需要调优,这个我还没有做过。
    MongoDB的Replication和Shard主要解决两个问题:
    1、横向拓展问题,比如现在速度课接受,但数据大了后怎么办?一种选则是换更NB的机器,第二种就是两台机器一起跑。MongoDB就是第2种,可拓展行较好。
    2、读密集写不密集情况。即单点写入,多点读出可大大缓解读取压力,提升系统性能。而很多系统中,确实写的很少。当然代价就是不同步。
    你确定你的机器内存够么?
    你不会是在vps上什么的跑吧?我自己测试,最慢每秒写都可达到10000/秒,比mysql好很多了。

    Reply
  3. coder4coder4 Post author

    @omar: 内存不够的时候,MongoDB性能会下降很快,毕竟他是内存数据库,性能的提升都是靠存在内存中(定期dump到硬盘持久化)获得的。Mongo很吃内存的,一般100w个记录(每个记录1k)就能搞到500MB了。

    Reply
  4. coder4omar

    谢谢回复。
    我是简单的测试,使用jdbc连mysql,然后用mongo的驱动连mongo,然后对几万条数据进行读取,简单比对了时间使用。
    我通常是mysql负责存储,memcached负责缓存,数据过大之后将其分布式配置。
    所以不太了解monogo的优势。

    Reply

Leave a Reply

Your email address will not be published.