记录一次MongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比
- 增加了wiredtiger引擎:
- 开源的存储引擎;
- 支持多核CPU、充分利用内存/芯片级别缓存(注:10月14日刚刚发布的3.0.7版本中,进一步改进了内存操作的性能);
- 基于B-TREE及LSM算法;
- 提供文档级锁(document-level concurrency control),类似于关系型数据库的的行级锁;
- 支持文件压缩(其中snappy压缩机制可以在5%的额外CPU消耗,减少70%的空间使用,也可以根据需要调节压缩比例),三种压缩类型:
- 不压缩;
- Snappy压缩:默认的压缩方式, Snappy是在谷歌内部生产环境中被许多项目使用的压缩库,包括BigTable,MapReduce和RPC等,压缩速度比Zlib快,但是压缩处理文件的大小会比Zlib大20%-100%, Snappy对于纯文本的压缩率为1.5-1.7,对于HTML是2-4,对于JPEG、PNG和其他已经压缩过的数据压缩率为1.0。在I7 i7 5500u 单核CPU测试中,压缩性能可在200M/s-500M/s;
- Zlib压缩: Z1ib是一个免费、通用、跨平台、不受任何法律阻碍的、无损的数据压缩开发库,相对于Snappy压缩,消耗CPU性能高、压缩速度慢,但是压缩效果好。
- MMAPv1引擎(MongoDB2.6及以下版本用的是MMAP引擎):
- collection锁(collection-level concurrency control),在MMAP版本中,只提供了database的锁(既当一个用户对一个collection进行操作时,其他的collection也被挂起);
- 无缝迁移(MMAP版本的数据可以在线迁移至MMAPV1版本,也可以迁移至wiredtiger引擎中)。
- 可插拔的存储引擎API(类似于mysql的多引擎驱动)
- 通过不同的数据引擎来满足不同的数据需求;
- 未来更多的场景扩展。
- Ops manager(MongoDB企业版提供的功能)
- 居于web的图形管理界面
- 减少日常日常和配置的工作
服务器硬件配置:172.16.16.169 CPU:2*E5620 @ 2.40GHz、内存:8G
客户端硬件配置:172.16.40.92 CPU: 4*I5-4300U@ 1.90GHz、内存:4G
数据库:mongodb V3.0.6
开发环境:python3.4.3、pycharm4.5.4
#./mongod --dbpath=/data/db --logpath=/data/log
#./mongo
> db.serverStatus()"storageEngine" : {"name" : "mmapv1"
#./mongod --dbpath=/data/wiredtiger --logpath=/data/wiredtiger/log
#./mongo 127.0.0.1:11111
> db.serverStatus()"storageEngine" : {"name" : "wiredTiger"
import time
import datetime
import timeit
import math
ISOTIMEFORMAT = '%Y-%m-%d %X' from pymongo import MongoClient
mc = MongoClient("172.16.16.169",27017)
db = mc.users
def dateDiffInSeconds(date1,date2):
timedelta = date2 - date1
return timedelta.days*24*3600 +timedelta.seconds
date1 = datetime.datetime.now()
db.users.drop()
for i in range(0,1000000) :db.users.insert({"name":"ljai","age":i,"addr":"fuzhou"})
c = db.users.find().count()
print("count is ",c)
date2 = datetime.datetime.now()
print(date1)
print(date2)
print(dateDiffInSeconds(date1,date2),"seconds")
mc.close()
8. 测试结果:100万条数据写入花费了12分钟28秒:

2、 python连接MongoDB WiredTiger写入配置:
import time
import datetime
import timeit
import math
ISOTIMEFORMAT = '%Y-%m-%d %X' from pymongo import MongoClient
mc = MongoClient("172.16.16.169",27017)
db = mc.users
def dateDiffInSeconds(date1,date2):
timedelta = date2 - date1
return timedelta.days*24*3600 +timedelta.seconds
date1 = datetime.datetime.now()
db.users.drop()
for i in range(0,1000000) :db.users.insert({"name":"ljai","age":i,"addr":"fuzhou"})
c = db.users.find().count()
print("count is ",c)
date2 = datetime.datetime.now()
print(date1)
print(date2)
print(dateDiffInSeconds(date1,date2),"seconds")
mc.close()
9. 测试结果:100万条数据写入花费了10分3秒:

记录一次MongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比的更多相关文章
- MongoDB3.0.x版本用户授权配置(单机环境)
MongoDB数据库默认情况下是没有做权限控制的,只要能够连接所开放的端口就能进行访问,而且拥有root级别的权限:对于生产环境而言是极不安全的,所以需要建立用户,进行授权控制. 单机环境下的用户授权 ...
- Mongodb2.6升级到Mongodb3.0.2笔记
PS:升级到3版本的Mongodb以后,drop集合是可以直接释放磁盘空间的 停止老版本Mongodb >use admin >db.shutdownServer(); 下载解压新版本Mo ...
- mongodb3.0版本的2种引擎对比
mongodb3.0以后 增加了wiredtiger引擎.常规引擎也升级到MMAPv1引擎(MongoDB2.6及以下版本用的是MMAP引擎): mmapv1引擎: col ...
- 把mmapv1存储引擎存储的mongodb3.0数据库数据复制到WiredTiger存储引擎的mongodb3.2中
mongodb3.0在mmapv1的存储引擎基础上添加了一个新的存储引擎WiredTiger.但是3.0的默认存储引擎依旧是mmapv1,因此我们项目之前也就用的默认方式. 但是mongodb更新实在 ...
- mysql8.0以上版本修改密码问题记录
参考链接: https://blog.csdn.net/qq_27820551/article/details/101488430 https://blog.csdn.net/mukouping82/ ...
- MongoDBV3.0.7版本(shard+replica)集群的搭建及验证
集群的模块介绍: 从MongoDB官方给的集群架构了解,整个集群主要有4个模块:Config Server.mongs. shard.replica set: Config Server:用来存放集群 ...
- 【大数据】Linux下Storm(0.9版本以上)的环境配置和小Demo
一.引言: 在storm发布到0.9.x以后,配置storm将会变得简单很多,也就是只需要配置zookeeper和storm即可,而不再需要配置zeromq和jzmq,由于网上面的storm配置绝大部 ...
- Mongodb3.0.6副本集+分片学习笔记
一.使用问题记录 1. mongodb3.0.6使用mongostat参数 >./mongostat -h 127.0.0.1:27017 -u root -p 123456 /authenti ...
- MongoDB3.0新特性
3月3日,MongoDB3.0终于发布了. 主要特点包括了对之前收购的WiredTiger存储引擎的支持,插件式存储引擎API,SCRAM-SHA-1认证机制,并改进了解释功能.此外,包含了自动化.备 ...
随机推荐
- js赋值运算的理解
简介 js引擎由于为了效率,很多时候的非直接量赋值都不是copy一份在赋值给新的变量,而是一个引用 ps:直接量:直接值数字字符串等 为什么使用len = doms.length; 里的len效率要比 ...
- Github团队开发示例(一)
Github团队开发示例(二) 作者:Grey 原文地址:http://www.cnblogs.com/greyzeng/p/6044837.html 我们可以在Github上管理自己的团队项目.团队 ...
- 7.2 数据注解属性--TimeStamp特性【Code-First 系列】
TimeStamp特性可以应用到领域类中,只有一个字节数组的属性上面,这个特性,给列设定的是tiemStamp类型.在并发的检查中,Code-First会自动使用这个TimeStamp类型的字段. 下 ...
- 基于STM32Cube的ADC模数采样设计
1.背景 此实验建立在STM32F429核心板基础上,对于深刻了解STM32Cube使用具有深刻意义.利用DMA进行ADC采样,具有速度快,极大减少CPU消耗的优势,对于数据采集系统具 ...
- block,inline和inline-block概念和区别
总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...
- C#基础知识二之this关键字
this关键字 引用类的当前实例,包括继承而来的方法,通常可以省略. public class Person { public string Name { get; set; } public int ...
- linux下 nginx、php-fpm、mysql 开机自启动
1.分别为每个编写shell脚本放入/etc/init.d下,添加service服务 2.把每个service服务加入到chkconfig列表 这里我们以php-fpm为例说明下步骤: php-fpm ...
- CentOS操作记录
基本操作记录 1.centos已经进到图形界面后怎么打开命令行:ctrl+alt+F3 得到如下命令界面 用用户名和密码登录 切换回图形界面时输入的命令:ctrl+alt+F1 2.重新启动系统:#r ...
- Windows 10 的音频和 MIDI API将统一
微软一统 Windows 10 的音频和 MIDI API 微软在夏季NAMM上的A3E大会上做了主题演讲,他们对Windows 10的音频和MIDI API都做了新的规划,开发者针对Windows ...
- AMD and CMD are dead之KMD.js版本0.0.2发布
更新 正式从UglifyJS切换至UglifyJS2 增加依赖可视化功能 压缩代码更加方便 统一风格:如main的class名也不能省略 优化了kmdjs管道 修复了无数bug 通过src开启debu ...