mysql8 mongodb4 增删改查 性能对比,2019 最专业对比,nosql 真的比 sql 性能强很多?

时间:2021-11-27 08:41:58
原文: mysql8 mongodb4 增删改查 性能对比,2019 最专业对比,nosql 真的比 sql 性能强很多?

版权所有:http://www.fengyunxiao.cn

近几年看了很多关于 Mysql 和 MongoDB 的性能对比的文章,几乎都说 MongoDB 性能比 Mysql 强几十倍。但本人对测试结果深表怀疑,一方面很多测试都没有说明测试的数据库的具体版本,sql服务占用的运行内存,字段是否进行了索引等信息;其次,实验时用的语言、项目、环境是否相同,是否使用了连接池,是否使用了事物也没有具体说明。

该博客测试了 Mysql 8 和 MongoDB 4 在不同数据量下的增删改查性能,为保证测试公平,两个数据库数据均在同一个操作系统,使用相同编程语言和框架,在同一个项目下测试。实验结果均取3次测试的平均值。

测试时间 2019年2月10日。

环境信息
环境名称 环境值
操作系统 win10
运行内存 16G
cpu 4核4线程
运行环境 关闭了可关闭的所有进程
安装位置 D盘,60G 固态
数据位置 D盘,60G 固态
开发语言 java
集成环境 idea
开发框架 springboot
连接池 springboot默认
数据库信息
mysql mongodb
版本 mysql8.0.15 mongodb4.0.5
运行内存 100M 左右 100M左右
引擎 innodb(默认) WiredTiger(默认)
主键 默认递增 默认主键
事物 增删改使用事物 已支持事物,但未使用
表结构(无索引)
字段名称 类型
id int, ObjectId
age int
name varchar
birthday datetime

插入测试

插入测试分为单个插入测试和批量插入测试。

  • 单个插入:每插入一条数据,都进行连接和事物操作,为常用业务,如添加一个新用户。
  • 批量插入:只开启一次连接和事物,执行完n次操作后关闭,效率高。常用于数据转移恢复。
插入测试结果
操作 mysql耗时 mongodb耗时
单个(1百次) 1.6秒 0.2秒
单个(1千次) 12.8秒 0.8秒
单个(1万次) 123秒 4.6秒
单个(10w次) 未测 30秒
批量1百条 0.2秒 0.16秒
批量1千条 1.2秒 0.8秒
批量1万条 6.8秒 3秒
批量10w条 36秒 23秒

插入结论

单次插入

  • 插入一百次,mongodb 比 Mysql 快 8倍
  • 插入一千次,快16倍
  • 插入一万次,快26倍

批量插入

  • 不论批量插入多少条数据(10w以内),mongodb 比 mysql 快约 60%。

查询测试

更新测试

其他测试进行中。。。后续更新。