mongo認識與使用

公司有一個數據來源,一天的數據量大概是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下如果裝成服務,有時自動啓動了,但客戶端連不上,這時需要用命令再去啓動


有不對的地方歡迎大家給予指正,或者有更好的辦法來解決希望能夠進行交流!




    


  

  



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章