mysql8 mongodb4 增删改查 性能对比,2019 最专业对比,nosql 真的比 sql 性能强很多?
原文: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 性能强很多?的更多相关文章
- node+mysql,实现基本的增删改查,附带跟踪记录和运行时间记录
Node + mysql 实现基础的增删改查,以及性能测试. 网上有很多这样的例子,我也是找来学习的. 感觉node对mysql的操作非常简单,也很实用,比如自带防止sql注入的功能,一开始还担心注入 ...
- MySQL数据库学习笔记(九)----JDBC的ResultSet接口(查询操作)、PreparedStatement接口重构增删改查(含SQL注入的解释)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- mongod 安装,增删改查
SQL - MySQL Oracel DB2 sybase MSSQLMySQL : PHP > LAMPMySQL - 关系型数据库 - 语言学习成本高user_infoid name ...
- (一)Mybatis基本配置,Statement方式,动态代理增删改查
首先明白Mybatis是干什么的,之前使用jdbc操作数据库时候要写很多语句,获取光标,连接,获取具体对象进行相应操作,代码过于繁琐,所以现在有了Mybatis,它将这个操作整合在了一起,你不需要关心 ...
- “造轮运动”之 ORM框架系列(一)~谈谈我在实际业务中的增删改查
想想毕业已经快一年了,也就是大约两年以前,怀着满腔的热血正式跨入程序员的世界,那时候的自己想象着所热爱的技术生涯会是多么的丰富多彩,每天可以与大佬们坐在一起讨论解决各种牛逼的技术问题,喝着咖啡,翘着二 ...
- 通过JDBC进行简单的增删改查(二)
本章笔记更易理解和学习,也是我第一次初学的笔记. package javastudy; import java.sql.Connection; import java.sql.DriverManage ...
- CodeIgniter - 数据库的增删改查
数据库操作无非是CRUD,用非装逼的语言来说就是增删改查.也许这一节会讲的很泛泛,或者很多人看不懂,没关系,大致的看看,知道是这么回事就好,继续往后看,后面会讲实例,这些枯燥而又抽象的东西可以先跳过, ...
- 快速开发平台WebBuilder中ExtJS表格的增删改查
使用WebBuilder可实现表格的自动增删改查功能,而无需编写前台脚本和后台SQL. WebBuilder开源项目地址:http://www.putdb.com 自动生成的页面: <!DOCT ...
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
MVC3.0+knockout.js+Ajax 实现简单的增删改查 自从到北京入职以来就再也没有接触MVC,很多都已经淡忘了,最近一直在看knockout.js 和webAPI,本来打算采用MVC+k ...
随机推荐
- javafx KeyFrame
import javafx.animation.Animation; import javafx.animation.KeyFrame; import javafx.animation.Timelin ...
- Regularized logistic regression
要解决的问题是,给出了具有2个特征的一堆训练数据集,从该数据的分布可以看出它们并不是非常线性可分的,因此很有必要用更高阶的特征来模拟.例如本程序中个就用到了特征值的6次方来求解. Data To be ...
- tortoisegit--无法commit
tortoisegit--无法提交,好几次使用tortoisegit,commit的时候出现卡死的情况,导致无法提交代码. 分析错误以为是: 电脑的性功能有关,但重启好几次电脑一人无济于事,打开任务管 ...
- 洛谷 P1405 苦恼的小明
P1405 苦恼的小明 题目描述 黄小明和他的合伙人想要创办一所英语培训机构,注册的时候要填一张个人情况的表格,在身高一栏小明犯了愁. 身高要求精确到厘米,但小明实在太高了,无法在纸上填下这么长的数字 ...
- IOS越狱开发错误解决
Questions: haseScriptExecution Run\ Script /Users/jun/Library/Developer/Xcode/DerivedData/ButtonMa ...
- bug 7715339 登录失败触发 ‘row cache lock’ 等待
Bug 7715339 - Logon failures causes "row cache lock" waits - Allow disable of logon delay ...
- [NOI.AC#30]candy 贪心
链接 一个直观的想法是,枚举最小的是谁,然后二分找到另外一个序列对应位置更新答案,复杂度 \(O(NlogN)\) 实际上不需要二分,因为每次当最大的变大之后,原来不行的最小值现在也一定不行,指针移动 ...
- 2.FastJson公司--阿里巴巴开源的速度最快的Json和对象转换工具
转自:https://blog.csdn.net/gongpulin/article/details/52062532 这是关于FastJson的一个使用Demo,在Java环境下验证的 这是关于Fa ...
- Java Base64、HMAC、SHA1、MD5、AES DES 3DES加密算法
● BASE64 严格地说,属于编码格式,而非加密算法 ● MD5(Message Digest algorithm 5,信息摘要算法) ● SHA(Secure Hash Algo ...
- 洛谷 P2347 砝码称重
P2347 砝码称重 题目描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=1000), 输入输出格式 输入格式: 输入方式:a1 a2 a3 a4 a5 a6 (表示1 ...