软硬件环境

MySQL版本:5.1.50,驱动版本:5.1.6(最新的5.1.13有很多杂七杂八的问题)

MongoDB版本:1.6.2,驱动版本:2.1

操作系统:Windows XP SP3(这个影响应该不大)

CPU:Intel Core2 E6550 2.33G

内存:2G(足够了)

MySQL启动参数:bin\mysqld --no-defaults --console --character-set-server=utf8 --max_connections=1000 --max_user_connections=1000

MongoDB启动参数:bin\mongod --dbpath data\ --directoryperdb --rest --maxConns 1000 –quiet

除了加大最大连接数之外,均使用默认参数

测试

该测试主要为改进当前系统的日志的存储和查询性能提供参考,所以表的创建也以实际情况为例,下面是MySQL的建表语句:

CREATE TABLE `flt_evecurrent` (

`NodeID` int(11) NOT NULL DEFAULT '0',

`FltID` int(11) NOT NULL DEFAULT '0',

`ObjID` int(11) DEFAULT NULL,

`StationID` int(11) DEFAULT NULL,

`EveType` int(11) DEFAULT NULL,

`Severity` int(11) DEFAULT NULL,

`ReportTime` date DEFAULT NULL,

`CreateTime` date DEFAULT NULL,

`EveContent` varchar(1024) DEFAULT NULL,

`EveDesc` varchar(256) DEFAULT NULL,

PRIMARY KEY (`NodeID`,`FltID`)

);

MongoDB类似,索引按照查询语句的查询字段创建,该例子中为ObjID和CreateTime两个字段创建索引。

分别插入100万条记录,并对其做100个用户并发查询操作。

MySQL每一次都Drop表,MongoDB每一次都删除data目录。

查询的时候,从第二次查询开始,连续记录三次。

结果

插入时间

查询时间

MySQL InnoDB引擎 无索引

10分33秒

39.516秒、35.907秒、39.907秒

MySQL InnoDB引擎 有索引

11分16秒

非常不稳定:22.531秒、13.078秒、23.078秒、26.047秒、21.234秒、28.469秒、20.922秒、13.328秒

MySQL MyISAM引擎 无索引

3分21秒

22.812秒、23.343秒、23.125秒

MySQL MyISAM引擎 有索引

3分50秒

10.312秒、10.359秒、10.296秒

MongoDB无索引

37秒

59.531秒、60.063秒、59.891秒

MongoDB有索引

50秒

3.484秒、3.453秒、3.453秒

磁盘空间占用(有索引时候的占用,无索引情况差不多):

MySQL MyISAM:57MB

MySQL InnoDB:264MB

MongoDB:464MB

另外测试中还发现一个有意思的现象,如果MongoDB查询中,如果单独查询ObjID字段,耗时约1秒,如果单独查询CreateTime字段,耗时约10秒,如果两个字段合起来查,就是上面的结果,约3秒,估计MongoDB内部对查询顺序作了优化吧。

mongodb性能 mysql_MySQL和MongoDB的性能测试相关推荐

  1. Mongodb亿级数据量的性能测试zz

    进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插入的数据每条大约在1KB左右) 2) 批量插入性能 ( ...

  2. Mongodb亿级数据量的性能测试比较完整收藏一下

    原文地址: http://www.cnblogs.com/lovecindywang/archive/2011/03/02/1969324.html 进行了一下Mongodb亿级数据量的性能测试,分别 ...

  3. Mongodb亿级数据量的性能测试

    进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插入的数据每条大约在1KB左右) 2) 批量插入性能 ( ...

  4. 使用PowerShell调用MTools分析MongoDB性能并发送邮件

    使用PowerShell调用MTools分析MongoDB性能并发送邮件 问题描述: 在MongoDB日常运维中,经常需要查看连接数的趋势图.慢查询.Overflow语句.连接来源. 解决方案: 1. ...

  5. mongodb 监控权限_分布式监控系统Zabbix3.4-针对MongoDB性能监控操作笔记

    公司在IDC机房的一台服务器上部署了MongoDB,由于所存储的业务数据比较重要,所以对MongoDB的监控显得尤为重要!Zabbix监控MongoDB性能的原理:通过echo "db.se ...

  6. Mongodb性能监控

     Mongodb性能监控 当你的mongodb出现插入查询等过慢的问题,你第一想到应该是查看mongodb运行状态. mongostat是Mongodb自带命令,位于Mongodb bin目录下, ...

  7. 【MongoDB系列】:MongoDB 集群,副本集模式(二)

    2019独角兽企业重金招聘Python工程师标准>>> mongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式.详情 副本集 使用复制可以将数据副本保存到多台服务器上 ...

  8. Docker安装部署MongoDB及MySql和MongoDB的语法对比

    MongoDB是一个免费的.开源的.跨平台分布式面向文档存储的数据库,由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品 ...

  9. MongoDB学习笔记(一) MongoDB介绍及安装

    系列目录 MongoDB学习笔记(一) MongoDB介绍及安装     MongoDB学习笔记(二) 通过samus驱动实现基本数据操作     MongoDB学习笔记(三) 在MVC模式下通过Jq ...

最新文章

  1. 双方互GAN,不如来试试群体博弈?更快更强更自由 | ICLR 2021
  2. 计算机硬件存储器,个人计算机的存储器系统 说说内核与计算机硬件结构(5)
  3. html5 拍照 清晰度,html5强大的功能(一)
  4. C++ SVM Opencv3.4实现人脸检测
  5. 使用ArcGIS Engine来实现地图的点击查询并闪烁
  6. PHP仿金蝶云ERP进销存V8网络多仓版源码
  7. php项目导入其他包,将一个外部项目导入Thinkphp环境中
  8. perl模块Getopt::Std用法及实例-从命令行读取参数模块
  9. Android性能优化系列——Performance Tips
  10. centos7下发邮件给自己的QQ邮箱
  11. C语言笔记 · ASCII码表
  12. imx6ull 485 调试
  13. 微商爆粉2.0全自动批量加人模拟手动操作
  14. 印会河《中医基础理论》笔记——阴阳学说、五行学说
  15. 三种等待方式:强制等待、显式等待、隐式等待
  16. 亚马逊——不一样的电商公司
  17. Hugging face 的入门使用
  18. 补码 符号数的二进制 整数
  19. Python用Requests爬虫实现截屏翻译
  20. go-cqhttp调用接口

热门文章

  1. 解决: Windows下启动Redis失败
  2. 基类成员函数和派生类成员函数不构成重载
  3. 印象笔记添加txt附件
  4. Linux上SQL Server事务复制
  5. python脚本字符串拼接_Python脚本分割和连接字符串
  6. sql文件中捕获异常_使用更改数据捕获监视SQL Server中的更改
  7. ta-lib 里的蜡烛图形态函数源码
  8. dedesmc 手机端生成静态页
  9. 『PyTorch』第十五弹_torch.nn.Module的属性设置查询
  10. 【设计模式】 模式PK:命令模式VS策略模式