测试mongoDB插入速度

来源:互联网 发布:如何学好高中生物知乎 编辑:程序博客网 时间:2024/05/16 20:31

运行mongodb:mongoDB下运行./bin/mongo

0.运行环境见最后

1.查看db大小:show dbs

2.使用test数据库:use

3.插入函数编写:

测试insert时间函数

var inserttimes=function(n){var start=(new Date()).getTime(); for(var i=1;i<=n;i++){ db.tester.insert({"name":"xubo","time":"20150813","ops":"testinserttimes"}); }var timeDiff=(new Date()).getTime()-start; print("n:"+ n +"insert times:"+timeDiff+"ms");}

测试多组n值:

for(var i=1;i<=100000000000;i=i*10){inserttimes(i);}

4.运行结果:



n:1insert times:5msn:10insert times:7msn:100insert times:67msn:1000insert times:515msn:10000insert times:4831msn:100000insert times:45211msn:1000000insert times:460268msn:10000000insert times:4612411ms

运行更大的n时不想等就中断了。有兴趣的可以继续测试。


查看数据库大小:

> show dbslocal  0.078GBtest   3.952GBtest1  0.078GBxubo   0.078GB> x

查看数据库状态:db.stats()

> db.stats(){"db" : "test","collections" : 3,"objects" : 12150584,"avgObjSize" : 111.99998419829039,"dataSize" : 1360865216,"storageSize" : 1580163072,"numExtents" : 21,"indexes" : 1,"indexSize" : 394271248,"fileSize" : 4226809856,"nsSizeMB" : 16,"extentFreeList" : {"num" : 0,"totalSize" : 0},"dataFileVersion" : {"major" : 4,"minor" : 22},"ok" : 1}> 

显示插入了12150584条数据。


5.删除速度测试:drop和remove

1).drop

> db.tester.findOne();{"_id" : ObjectId("55cc21a8479362971e927006"),"name" : "xubo","time" : "20150813","ops" : "testinserttimes"}> db.stats()   {"db" : "test","collections" : 3,"objects" : 12150584,"avgObjSize" : 111.99998419829039,"dataSize" : 1360865216,"storageSize" : 1580163072,"numExtents" : 21,"indexes" : 1,"indexSize" : 394271248,"fileSize" : 4226809856,"nsSizeMB" : 16,"extentFreeList" : {"num" : 0,"totalSize" : 0},"dataFileVersion" : {"major" : 4,"minor" : 22},"ok" : 1}> var droptimes=function(){... var start=(new Date()).getTime();...  ...  db.tester.drop();...  var timeDiff=(new Date()).getTime()-start;...  print("drop times:"+timeDiff+"ms");... }> removetimes()remove times:32ms> db.stats(){"db" : "test","collections" : 2,"objects" : 1,"avgObjSize" : 48,"dataSize" : 48,"storageSize" : 12288,"numExtents" : 2,"indexes" : 0,"indexSize" : 0,"fileSize" : 4226809856,"nsSizeMB" : 16,"extentFreeList" : {"num" : 32,"totalSize" : 2041004032},"dataFileVersion" : {"major" : 4,"minor" : 22},"ok" : 1}> db.tester.findOne();null> },

drop 删除12150584数据时间32ms,基本可以忽略。
查看data/db文件并没有变小,也就是drop并没有从磁盘上删除数据。

xubo@xubo:~/cloud/mongodb/data/db$ du -sh *3.1Gjournal64Mlocal.016Mlocal.ns4.0Kmongod.lock4.0Kstorage.bson64Mtest.0128Mtest.165Mtest1.016Mtest1.ns256Mtest.2513Mtest.31.1Gtest.42.0Gtest.516Mtest.ns4.0K_tmp64Mxubo.016Mxubo.ns


当删除数据库是会删除:

> db.dropDatabase();{ "dropped" : "test", "ok" : 1 }

xubo@xubo:~/cloud/mongodb/data/db$ du -sh *3.1Gjournal64Mlocal.016Mlocal.ns4.0Kmongod.lock4.0Kstorage.bson65Mtest1.016Mtest1.ns4.0K_tmp64Mxubo.016Mxubo.ns

2). remove数据:811478条

> var removetimes=function(){... var start=(new Date()).getTime();...  ...  db.tester.remove({});...  var timeDiff=(new Date()).getTime()-start;...  print("remove times:"+timeDiff+"ms");... }> removetimes()remove times:9459ms> 
时间为:remove times:9459ms



附录:运行环境:

xubo@xubo:~/cloud/mongodb/data/db$  lshw -shortWARNING: you should run this program as super-user.PCI (sysfs)  H/W path     Device  Class       Description============================================                     system      Computer/0                   bus         Motherboard/0/0                 memory      3852MiB System memory/0/1                 processor   Intel(R) Core(TM)2 Duo CPU     E7500  @ 2.93GHz/0/100               bridge      4 Series Chipset DRAM Controller/0/100/1             bridge      4 Series Chipset PCI Express Root Port/0/100/2             display     4 Series Chipset Integrated Graphics Controller/0/100/2.1           display     4 Series Chipset Integrated Graphics Controller/0/100/1b            multimedia  NM10/ICH7 Family High Definition Audio Controll/0/100/1c            bridge      NM10/ICH7 Family PCI Express Port 1/0/100/1c/0  eth0    network     NetLink BCM57780 Gigabit Ethernet PCIe/0/100/1d            bus         NM10/ICH7 Family USB UHCI Controller #1/0/100/1d.1          bus         NM10/ICH7 Family USB UHCI Controller #2/0/100/1d.2          bus         NM10/ICH7 Family USB UHCI Controller #3/0/100/1d.3          bus         NM10/ICH7 Family USB UHCI Controller #4/0/100/1d.7          bus         NM10/ICH7 Family USB2 EHCI Controller/0/100/1e            bridge      82801 PCI Bridge/0/100/1f            bridge      82801GB/GR (ICH7 Family) LPC Interface Bridge/0/100/1f.1          storage     82801G (ICH7 Family) IDE Controller/0/100/1f.2          storage     NM10/ICH7 Family SATA Controller [IDE mode]/0/100/1f.3          bus         NM10/ICH7 Family SMBus Controller/1           tap0    network     Ethernet interfaceWARNING: output may be incomplete or inaccurate, you should run this program as super-user.

ubuntu14.04,mongodb3.0.5,单节点






0 0