摘要:Java & MongoDB Insert、Update、Select時間
這是我在新增一筆,至一萬筆資料時,所做的新增、修改、查詢(單一筆)所需要的時間表(單位毫秒)
當我未使用索引的時候的花費時間,Update及Select,針對三個欄位去做條件查詢。很明顯的瓶頸會是在Update上
筆數 | Insert | Update | Select |
1 | 5 | 2 | 32 |
10 | 8 | 5 | 30 |
100 | 27 | 16 | 17 |
1000 | 125 | 375 | 19 |
10000 | 660 | 40076 | 27 |
若加了索引之後的速度是如下
筆數 | Insert | Update | Select |
1 | 6 | 3 | 19 |
10 | 7 | 5 | 21 |
100 | 29 | 13 | 18 |
1000 | 123 | 84 | 18 |
10000 | 672 | 818 | 20 |
100000 | 2952 | 7194 | 17 |
1000000 | 26563 | 79420 | 18 |
以上是三個主鍵的時候的狀況,
---------------------------------------------------------------------------
再以_id為主鍵,做查詢條件做更新的話,速度如下
筆數 | Insert | Update | Select |
1 | 5 | 3 | 19 |
10 | 9 | 5 | 22 |
100 | 27 | 13 | 20 |
1000 | 139 | 74 | 18 |
10000 | 731 | 466 | 16 |
100000 | 4165 | 2484 | 17 |
1000000 | 35526 | 24480 | 16 |
只有Key/Value型式的結構時
筆數 | Insert | Update | Select |
1 | 6 | 3 | 13 |
10 | 8 | 5 | 5 |
100 | 23 | 15 | 5 |
1000 | 112 | 85 | 5 |
10000 | 690 | 585 | 17 |
100000 | 4008 | 5618 | 16 |
1000000 | 51323 | 77634 | 17 |
-----------------------------------------------------------------------
如果程式撰寫,使用的是批次新增的話,結果如下,一百萬筆,僅需要7秒鐘就可完成
MongoDB | 10000筆批次 | 1000筆批次 |
筆數 | Insert | Insert |
10000 | 248 | 366 |
100000 | 835 | 2196 |
1000000 | 6904 |
20590 |