原文: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%。

查询测试

更新测试

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

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

  1. node+mysql,实现基本的增删改查,附带跟踪记录和运行时间记录

    Node + mysql 实现基础的增删改查,以及性能测试. 网上有很多这样的例子,我也是找来学习的. 感觉node对mysql的操作非常简单,也很实用,比如自带防止sql注入的功能,一开始还担心注入 ...

  2. MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...

  3. mongod 安装,增删改查

    SQL - MySQL Oracel DB2 sybase MSSQLMySQL : PHP > LAMPMySQL - 关系型数据库  - 语言学习成本高user_infoid  name   ...

  4. (一)Mybatis基本配置,Statement方式,动态代理增删改查

    首先明白Mybatis是干什么的,之前使用jdbc操作数据库时候要写很多语句,获取光标,连接,获取具体对象进行相应操作,代码过于繁琐,所以现在有了Mybatis,它将这个操作整合在了一起,你不需要关心 ...

  5. “造轮运动”之 ORM框架系列(一)~谈谈我在实际业务中的增删改查

    想想毕业已经快一年了,也就是大约两年以前,怀着满腔的热血正式跨入程序员的世界,那时候的自己想象着所热爱的技术生涯会是多么的丰富多彩,每天可以与大佬们坐在一起讨论解决各种牛逼的技术问题,喝着咖啡,翘着二 ...

  6. 通过JDBC进行简单的增删改查(二)

    本章笔记更易理解和学习,也是我第一次初学的笔记. package javastudy; import java.sql.Connection; import java.sql.DriverManage ...

  7. CodeIgniter - 数据库的增删改查

    数据库操作无非是CRUD,用非装逼的语言来说就是增删改查.也许这一节会讲的很泛泛,或者很多人看不懂,没关系,大致的看看,知道是这么回事就好,继续往后看,后面会讲实例,这些枯燥而又抽象的东西可以先跳过, ...

  8. 快速开发平台WebBuilder中ExtJS表格的增删改查

    使用WebBuilder可实现表格的自动增删改查功能,而无需编写前台脚本和后台SQL. WebBuilder开源项目地址:http://www.putdb.com 自动生成的页面: <!DOCT ...

  9. MVC3.0+knockout.js+Ajax 实现简单的增删改查

    MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...

随机推荐

  1. javafx KeyFrame

    import javafx.animation.Animation; import javafx.animation.KeyFrame; import javafx.animation.Timelin ...

  2. Regularized logistic regression

    要解决的问题是,给出了具有2个特征的一堆训练数据集,从该数据的分布可以看出它们并不是非常线性可分的,因此很有必要用更高阶的特征来模拟.例如本程序中个就用到了特征值的6次方来求解. Data To be ...

  3. tortoisegit--无法commit

    tortoisegit--无法提交,好几次使用tortoisegit,commit的时候出现卡死的情况,导致无法提交代码. 分析错误以为是: 电脑的性功能有关,但重启好几次电脑一人无济于事,打开任务管 ...

  4. 洛谷 P1405 苦恼的小明

    P1405 苦恼的小明 题目描述 黄小明和他的合伙人想要创办一所英语培训机构,注册的时候要填一张个人情况的表格,在身高一栏小明犯了愁. 身高要求精确到厘米,但小明实在太高了,无法在纸上填下这么长的数字 ...

  5. IOS越狱开发错误解决

      Questions: haseScriptExecution Run\ Script /Users/jun/Library/Developer/Xcode/DerivedData/ButtonMa ...

  6. bug 7715339 登录失败触发 ‘row cache lock’ 等待

    Bug 7715339 - Logon failures causes "row cache lock" waits - Allow disable of logon delay ...

  7. [NOI.AC#30]candy 贪心

    链接 一个直观的想法是,枚举最小的是谁,然后二分找到另外一个序列对应位置更新答案,复杂度 \(O(NlogN)\) 实际上不需要二分,因为每次当最大的变大之后,原来不行的最小值现在也一定不行,指针移动 ...

  8. 2.FastJson公司--阿里巴巴开源的速度最快的Json和对象转换工具

    转自:https://blog.csdn.net/gongpulin/article/details/52062532 这是关于FastJson的一个使用Demo,在Java环境下验证的 这是关于Fa ...

  9. Java Base64、HMAC、SHA1、MD5、AES DES 3DES加密算法

    ●  BASE64 严格地说,属于编码格式,而非加密算法    ●  MD5(Message Digest algorithm 5,信息摘要算法)    ●  SHA(Secure Hash Algo ...

  10. 洛谷 P2347 砝码称重

    P2347 砝码称重 题目描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=1000), 输入输出格式 输入格式: 输入方式:a1 a2 a3 a4 a5 a6 (表示1 ...