平臺 :windows 10,筆記本,i七、12G內存,
軟件版本:mySQL 5.七、postgreql 10.0、mongodDB 3.6.2
程序:Java,Netbeans,20個線程同時插入
1) MongoDB
a)單條插入
磁盤8-10M,
300秒插入7883957條,每秒2.2萬條
b)批量插入,每次插入1000條
CPU 100%
磁盤 18M到40M,中值在30M左右
100秒插入31782000條,每秒32萬條
須要注意一點,批量插入時,因爲_id重複問題,增長了UUID字段,因此在生成速度上有影響,不然應該會更快。
2)MySQL
a )單條插入
CPU 80%左右
磁盤 15M左右
300秒插入3623906條,每秒1.2萬條
b)批量插入,每次插入1000條
CPU 100%
磁盤 100M
100秒 24615000條,每秒24萬條
3)PostgreSQL
a) 單條插入
CPU 100%
磁盤 50M,比較穩定,降低時候很少
300秒,插入5890466,每秒接近2萬條
b)批量插入
CPU 100%
磁盤:70M,波動很大
100秒,插入16512000條,每秒16萬條
4)結論
sql
軟件 | MySQL | PostgreSQL | MongoDB |
版本 | 5.7 | 10.0 | 3.6.2 |
單條插入 | 1.2萬 | 2萬 | 2.2萬 |
批量 | 24萬 | 16萬 | 32萬 |
單條插入:MongoDB>PostgreSQL>MySQL,其中Postgresql使人驚訝,速度比MongoDB稍差,接近MySQL的兩倍。
批量插入(每次1000條):MongoDB>MySQL>PostgreSQL,MySQL表現優異,PostgreSQL表現較差,其中MongoDB爲了不_Id重複問題,增長了UUID,影響了速度,若是不使用UUID,速度應該還會提升。
5)建議
綜合考慮,PostgreSQL的性能較使人滿意,但系統周邊生態較差,相關開發人員也難以尋找,MongDB不負衆望,插入速度較快,但相對PostgreSQL優點並不明顯。
MySQL比較平庸,但暫時仍是優選。windows