MongoDB學習筆記5 測試查詢效能

2021-05-24 08:59:50 字數 926 閱讀 8142

大規模資料匯入實驗

在上乙個實驗 中,我們測試了匯入資料的效能,簡單總結一下測試方法:

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...