mongoDB批量插入資料效能分析、索引效率
阿新 • • 發佈:2019-02-06
硬體環境:
一臺華碩筆記本 AMD Athlon(tm) X2 Dual-Core ,1GB
軟體環境:
單機測試 ,非叢集環境 ,python指令碼讀取一個含60W條資料的檔案,插入資料庫。
測試方法:
批量插入n條資料,測試cpu、記憶體、執行時間資料。
測試結果
資料量 | cpu使用率 | 記憶體使用率 | 執行時間 |
---|---|---|---|
1000 | 99% | 3% | 0.19 |
5000 | 99% | 4% | 0.9s |
1W | 99$ | 6% | 1.9s |
10W | 99% | 20% | 19s |
結果分析:
在環境下,隨著一次批量插入的資料量的增加,平均單個數據插入耗時不變,cpu一直處於飽和狀態,記憶體使用路不斷增加。故,一次插入10000條以上資料不合適。
PS:python在讀取60W條資料的檔案,儲存到陣列中,耗時不到一秒,這是java遠不能及的。。。。
mongodb插入資料的時候,資料庫中本來就有幾十萬條資料,插入的速度沒有因此而降低。
索引效能分析
在插入資料的時候,如果資料庫簡歷了索引,會有一些效能損耗,但是查詢的時候,如果使用索引速度會大大提升。
是否使用索引 | 插入1W條資料耗時 | 從120W條資料中查詢一條資料【根據索引查詢】 |
是 | 1.9s | 0s |
否 | 1.8s | 2.3s |
結論:用索引,太好了,插入的時候那點效能損耗可以忽略。【這不廢話嗎。。。】