硬件環境:
一臺華碩筆記本 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 |
結論:用索引,太好了,插入的時候那點性能損耗可以忽略。【這不廢話嗎。。。】