mongo认识与使用

来源:互联网 发布:2016美国8月非农数据 编辑:程序博客网 时间:2024/05/16 18:25

公司有一个数据来源,一天的数据量大概是3千万,要实时进行存储,并能够快速查询,并自动进行维护。

一、调研测试

        测试数据准备,20个字段,数字类型+字符串类型组合,每条数据大小设计为1k,数据值不一样。用mongo客户端进行插入操作,用mongostat观察每秒入库数据,及最后生成的数据文件大小。

     1、单节点windows server 2008 64

插入记录数

所花时间(秒)

每秒插入数

数据文件大小

10w

8

12500

256M

100w

76

13157.8

3.73G

1000w

823

12150.6

11.7G

10000w

11h20s

2523.9

85.7G

    2、replicat Sets + sharding 在linux 64 (两个节点)

插入记录数

所花时间(秒)

每秒插入数

数据文件大小

10w

59

1694.9

536.9M * 2

100w

1687

592.7

3757.1M * 2

1000w

17400

574.7

20.6G * 2

10000w的测试实在时间太长就放弃做记录了。

二、解决问题

    1、mongo的内存控制

    设置定期刷库与定点刷卡方式来释放内存

    db.command(new BasicDBObject("closeAllDatabases", 1))

    2、数据库维护

    创建参数规定创建数据库能够按年月日来创建数据库,并且设置可以保存多少个库来保证硬盘的空间,索引的key都是用最简单的字母表示。

    3、故障恢复

    创建replicat set集群方式可以来自动恢复故障

     4、快速查询

     创建数据库时创建索引,提供参数配置规定按哪些字段来建索引。

三、 感想

     1、使用mongo需要有足够的内存

     2、mongo同一个查询会有规律的有一次是时间比较长的  

     3、windows下如果装成服务,有时自动启动了,但客户端连不上,这时需要用命令再去启动


有不对的地方欢迎大家给予指正,或者有更好的办法来解决希望能够进行交流!

0 0
原创粉丝点击