MySQL、PostgreSQL、MongoDB简单插入性能测试备忘

平台 :windows 10,笔记本,i7、12G 内存,
软件版本:mySQL 5.7、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)结论

软件 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 比较平庸,但暂时还是优选。