mongodb性能 mysql_MySQL和MongoDB的性能测试
软硬件环境
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的性能测试相关推荐
- Mongodb亿级数据量的性能测试zz
进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插入的数据每条大约在1KB左右) 2) 批量插入性能 ( ...
- Mongodb亿级数据量的性能测试比较完整收藏一下
原文地址: http://www.cnblogs.com/lovecindywang/archive/2011/03/02/1969324.html 进行了一下Mongodb亿级数据量的性能测试,分别 ...
- Mongodb亿级数据量的性能测试
进行了一下Mongodb亿级数据量的性能测试,分别测试如下几个项目: (所有插入都是单线程进行,所有读取都是多线程进行) 1) 普通插入性能 (插入的数据每条大约在1KB左右) 2) 批量插入性能 ( ...
- 使用PowerShell调用MTools分析MongoDB性能并发送邮件
使用PowerShell调用MTools分析MongoDB性能并发送邮件 问题描述: 在MongoDB日常运维中,经常需要查看连接数的趋势图.慢查询.Overflow语句.连接来源. 解决方案: 1. ...
- mongodb 监控权限_分布式监控系统Zabbix3.4-针对MongoDB性能监控操作笔记
公司在IDC机房的一台服务器上部署了MongoDB,由于所存储的业务数据比较重要,所以对MongoDB的监控显得尤为重要!Zabbix监控MongoDB性能的原理:通过echo "db.se ...
- Mongodb性能监控
Mongodb性能监控 当你的mongodb出现插入查询等过慢的问题,你第一想到应该是查看mongodb运行状态. mongostat是Mongodb自带命令,位于Mongodb bin目录下, ...
- 【MongoDB系列】:MongoDB 集群,副本集模式(二)
2019独角兽企业重金招聘Python工程师标准>>> mongoDB官方已经不建议使用主从模式了,替代方案是采用副本集的模式.详情 副本集 使用复制可以将数据副本保存到多台服务器上 ...
- Docker安装部署MongoDB及MySql和MongoDB的语法对比
MongoDB是一个免费的.开源的.跨平台分布式面向文档存储的数据库,由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品 ...
- MongoDB学习笔记(一) MongoDB介绍及安装
系列目录 MongoDB学习笔记(一) MongoDB介绍及安装 MongoDB学习笔记(二) 通过samus驱动实现基本数据操作 MongoDB学习笔记(三) 在MVC模式下通过Jq ...
最新文章
- 双方互GAN,不如来试试群体博弈?更快更强更自由 | ICLR 2021
- 计算机硬件存储器,个人计算机的存储器系统 说说内核与计算机硬件结构(5)
- html5 拍照 清晰度,html5强大的功能(一)
- C++ SVM Opencv3.4实现人脸检测
- 使用ArcGIS Engine来实现地图的点击查询并闪烁
- PHP仿金蝶云ERP进销存V8网络多仓版源码
- php项目导入其他包,将一个外部项目导入Thinkphp环境中
- perl模块Getopt::Std用法及实例-从命令行读取参数模块
- Android性能优化系列——Performance Tips
- centos7下发邮件给自己的QQ邮箱
- C语言笔记 · ASCII码表
- imx6ull 485 调试
- 微商爆粉2.0全自动批量加人模拟手动操作
- 印会河《中医基础理论》笔记——阴阳学说、五行学说
- 三种等待方式:强制等待、显式等待、隐式等待
- 亚马逊——不一样的电商公司
- Hugging face 的入门使用
- 补码 符号数的二进制 整数
- Python用Requests爬虫实现截屏翻译
- go-cqhttp调用接口