运行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:5ms
n:10insert times:7ms
n:100insert times:67ms
n:1000insert times:515ms
n:10000insert times:4831ms
n:100000insert times:45211ms
n:1000000insert times:460268ms
n:10000000insert times:4612411ms
运行更大的n时不想等就中断了。有兴趣的可以继续测试。
查看数据库大小:
> show dbs
local 0.078GB
test 3.952GB
test1 0.078GB
xubo 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.1G journal
64M local.0
16M local.ns
4.0K mongod.lock
4.0K storage.bson
64M test.0
128M test.1
65M test1.0
16M test1.ns
256M test.2
513M test.3
1.1G test.4
2.0G test.5
16M test.ns
4.0K _tmp
64M xubo.0
16M xubo.ns
当删除数据库是会删除:
> db.dropDatabase();
{ "dropped" : "test", "ok" : 1 }
xubo@xubo:~/cloud/mongodb/data/db$ du -sh *
3.1G journal
64M local.0
16M local.ns
4.0K mongod.lock
4.0K storage.bson
65M test1.0
16M test1.ns
4.0K _tmp
64M xubo.0
16M xubo.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 -short
WARNING: 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 interface
WARNING: output may be incomplete or inaccurate, you should run this program as super-user.
ubuntu14.04,mongodb3.0.5,单节点