Java & MongoDB Insert、Update、Select時間

摘要: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