MongoDB是一个基于分布式文件存储的数据库开源项目。由C++语言编写。旨在为WEB应用提供可护展的高性能数据存储解决方案。它比纯noSQL数据库查询功能强悍,比关系数据库更面向集合。
测试的硬件:酷睿双核3.0G,2G内存,7200转普通硬盘,Ubuntu10.04 32bit,MongoDB1.61
安装&启动
longhao@aliyun:~$ sudo apt-get install mongodb
#添加一个so,否则启动不了mongodb longhao@aliyun:~$ sudo ln -s /usr/lib/xulrunner-devel-1.9.2.8/lib/libmozjs.so /usr/lib/libmozjs.so #启动 longhao@aliyun:~$ sudo service mongodb start |
安装python库
到github上去下载mongodb到python driver或者 git clone git://github.com/mongodb/mongo-python-driver.git pymongo
longhao@aliyun:~$ tar zxvf pymongo.*.tar.gz longhao@aliyun:~$ cd pymongo longhao@aliyun:~$ python setup.py install |
编写测试代码
#!/usr/bin/env python from pymongo import Connection import time,datetime connection = Connection(‘127.0.0.1’, 27017) db = connection[‘testdb’] ”’ test program execute time,use python decorator! ”’ def func_time(func): def _wrapper(*args,**kwargs): start = time.time() func(*args,**kwargs) print func.__name__,’run:’,time.time()-start return _wrapper @func_time def insert(num): posts = db.posts for x in range(num): post = {“author”: str(x)+”Mike”, ”text”: “My first blog post!”, ”tags”: [“mongodb”, “python”, “pymongo”], ”date”: datetime.datetime.utcnow()} posts.insert(post) @func_time def find(): posts = db.posts print posts.find_one() @func_time def remove(): posts = db.posts print ‘count before remove:’,posts.count(); posts.remove({}); print ‘count after remove:’,posts.count(); if __name__ == “__main__”: num = 1000000 insert(num) find() remove() |
测试结果
longhao@aliyun:~$ python mongodb.py insert run: 211.037979126 |
测试显示向数据库中插入100W条数据耗时211.038秒,删除100W条数据耗时9.014秒,数据库文件总大小为1G(这个和保持的对象大小有关系)
遇到到问题:
1:数据库文件大小在清空库后不能自动更改;
2:单线程测试的结果,多线程效率会怎样还需要测试!
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
作者
相关推荐
-
2017年1月数据库流行度排行榜 新年新气象
新年新气象,数据库知识网站DB-engines最近更新了2017年1月份数据库流行度榜单。TechTarget数据库网站将与您分享1月份的榜单排名情况,让我们拭目以待。
-
2016年12月数据库流行度排行榜 几家欢乐几家愁
在过去的6个月中,数据库排行榜的前二十名总体上没有太大的变动,那么数据库知识网站DB-engines最近更新的2016年12月份数据库流行度排名情况是否一如既往的沉寂、低调呢?
-
2016年10月数据库流行度排行榜 两组数据库棋逢对手
数据库知识网站DB-engines更新了2016年10月份的数据库流行度排行榜,10月份的榜单又有哪些变化,哪些惊喜呢?
-
2016年9月数据库流行度排行榜 PostgreSQL超MongoDB居第四
数据库知识网站DB-engines更新了2016年9月份的数据库流行度排行榜。TechTarget数据库网站与您分享9月份的榜单。