美文网首页我爱编程
MongoDB性能测试

MongoDB性能测试

作者: 老虎Alex | 来源:发表于2018-01-18 16:13 被阅读889次

公司目前使用的数据库为MySql,已经明显看到了瓶颈,于是觉得找新的数据库代替,根据现状,新的数据库应该满足如下要求:

1.支持Linux(屁话)

2.对python编程友好(总不能因为换个数据库,拉着一群兄弟转java吧)

3.支持集群(又是屁话)

4.能在现有数据上轻易建索引,优化速度(鬼知道业务部门以后会提出个什么鬼需求来呢)

5.最好是C/C++写的(大部分都是)

去问了一下度娘,NoSQL方面无非就那几个主流的数据库可以用,大体浏览了一下,基本总结如下:

主流:HBase,Cassandra,Membase,MongoDB,Redis

其中HBase和Cassandra是使用java写的,直接被pass掉了(支持java的同学请尽情地喷)

Membase是Erlang和C写的,对Erlang印象不错

MongoDB使用C++写的,存储格式使用的是BSON,服务器的接口绝大部分是json格式,还保留了部分的MySql概念(查询,索引)

Redis使用C/C++,目前公司在用,作为一个辅助功能组件

转一圈下来,决定先试MongoDB,后续有机会再玩一下Membase。

去前台转转,顺来一部被淘汰下来的前台的PC,配置如下:

Intel(R) Pentium(R) CPU G3250 @ 3.20GHz

2核

4G内存

500G硬盘

接下来安装个Ubuntu 14.04.5 server版进去

计划先测试一下MySql在这部机器上的性能,再试MongoDB的,这样有个对比,由于线上数据库服务器外网无法直接访问,只能做个搬运工程,把线上的数据保存到excel文档,再在PC机上读excel写入到相关数据库里,这个思路把我恶心了一整天,主要是2点

1.excel一次最多只能写入7w多条记录

2.excel读的效率也使得测试结果严重失真

这时候我心爱的mqtt来救场了

在线上数据库端读取数据放进mqtt里,再在PC端监听对应的topic,把数据写入数据库,虽然与真实的性能有点差别,但这个差别是可以接受的。

测试结果如下:

其中每条数据有39个字段,MySql与MongoDB在数据插入前都建了2个多字段索引,插入的数据是一样的,数据都是逐条插入,使用普通插入模式(没使用安全插入和表锁),但MySql使用了UNIQUE KEY,MongoDB目前未做唯一性检查。

这里明显看到MongoDB的写入速度要比Mysql快很多,而且可以预测,后面随着数据量的增多,MySql的速度衰减会很明显,但MongoDB在数据达到一定规模后,性能会比较平稳。

这里要注意的还有MongoDB运行的时候内存的使用情况,MongoDB在运行时会占有大量内存,所有正式使用的时候,不适合和业务放在同一个服务器。

这里要说一下数据统计,使用相同的统计条件,MySql下初次统计耗时会较大,但再次统计时就会非常快,MongoDB的初次统计会比MySql快,但再次统计时,MongoDB还是会耗相同的时长。

相关文章

  • Mongodb 性能测试

    测试硬件环境 MacPro处理器名称: Intel Core i7处理器速度: 2.5 GHz处理器数目: 1核总...

  • MongoDB性能测试

    公司目前使用的数据库为MySql,已经明显看到了瓶颈,于是觉得找新的数据库代替,根据现状,新的数据库应该满足如下要...

  • MongoDB性能测试

    Nodejs编写的应用,后端连MongoDB进行持久化存储。Mongodb分别有两个版本,分别跑在虚拟机和kube...

  • JMeter(十九)JMeter测试MongoDB

    JMeter测试MongoDB性能有两种方式,一种是利用JMeter直接进行测试MongoDB,还有一种是写Jav...

  • MongoDB 入门系列(四)

    批量插入以及性能测试 性能优化的思想应当由始至终的贯穿于我们的应用程序之中 批量插入 新建文件mongodb-2....

  • 软件性能测试目录

    软件性能测试Ⅰ 软件性能测试Ⅱ 软件性能测试Ⅲ 软件性能测试Ⅳ 软件性能测试Ⅴ 软件性能测试Ⅵ 软件性能测试Ⅶ 软...

  • MongoDB索引

    准备阶段 插入10W条数据测试准备: MongoDB性能分析函数(explain) 查看索引 命名索引 删除索引 ...

  • 性能测试概览目录

    性能测试概览Ⅰ 性能测试概览Ⅱ 性能测试概览Ⅲ 性能测试概览Ⅳ

  • 玩转电商应用性能调优

    第1章 入门篇—性能测试基础知识 什么性能测试 性能测试类型 性能测试基本流程 性能测试需求分析 性能测试指标

  • Jmeter实战 - 遍历MongoDB大量数据

    测试场景 在MongoDB中存有上万个ID,某个接口需要带上ID参数,且每个ID只能使用一次,测试该接口的性能。 ...

网友评论

    本文标题:MongoDB性能测试

    本文链接:https://www.haomeiwen.com/subject/yaslhttx.html