大規模資料匯入實驗
在上乙個實驗 中,我們測試了匯入資料的效能,簡單總結一下測試方法:
1. schema: 每行資料三個字段,日期、id和當日流量,都是長整型
2. index: inventory.create_index([('date',ascending), ('id',ascending)], unique=false, dropdups=false)
3. 用mongoimport匯入csv資料
隨後我們在大規模的資料上進行了測試,匯入360天的資料,每天100萬行記錄。同樣的資料匯入兩次,由於索引不是unique的,最終的資料庫裡每天每個id有會兩條資料,總共720m行記錄。以下是測試結果:
測試時間
資料行數
磁碟占用
匯入360天資料,每天100萬行記錄
平均50秒/天
360m
74gb
在前面匯入的基礎上再一次匯入同樣的資料
平均60秒/天
720m
141gb
查詢效能實驗
在前面兩次匯入資料的基礎上,我們測試了資料查詢效能。在我們的應用裡,主要場景是隨機查詢某個id最近兩個月的資料,所以測試方法如下:
1. 清空系統快取
echo 3 > /proc/sys/vm/drop_caches (需要root許可權)
2. 隨機選取1000個id,查詢最近60天的流量
inventory.find(,'id':id})
3. 計算平均查詢時間
結果如下:
1. 查詢最近60天的資料,每個查詢返回120條記錄,平均時間是0.28秒
2. 查詢總共360天的資料,每個查詢返回720條記錄,平均時間是4.26秒
這樣的效能對我們目前的應用來說足夠了:)
MongoDB學習(翻譯5)
本文件基於c 官方驅動1.8版本。本節c 驅動教程談論c 類到bson物件的序列化和反序列化。序列化是對映乙個物件到可儲存到mongodb庫中bson物件的過程,反序列化由bson文件重建物件的逆過程。因此,序列化過程通常被稱為 物件對映 序列化使用bson庫處理。bson庫擁有乙個可擴充套件的序列...
MongoDB學習筆記
從接觸計算機學習開始,我所使用的資料庫就是mysql,oracle這樣的關係型資料庫。早就聽說了nosql的概念,也對其有代表性的非關係型資料庫mongodb有所耳聞,一直想學習學習這項從未使用過的技術,可是由於種種原因,又沒有時間來學習學習這項新的概念。也就是這麼巧,目前的工作中,使用到的就是mo...
mongodb學習筆記
匯入json檔案命令 mongoimport db test collection user file d new.json mongodb查詢某一條件的資料插入到集合中 var result db.csmdr.find while result.hasnext db.新建表名.insert res...