壮哉我大芒果

第一次听说mongodb这个词时,第一时间想到的就是芒果。
随着mongodb风靡全球,芒果台的《还珠格格》在美国上映,
这一切都告诉我们:这世上没有什么事情是不可能的。
mongodb的性能有多强悍,我们来做下测试:

for(var i=0;i<1000000;i++){
db.bench.save({x:4,j:i})
}

在等待了二十几秒后,我们就创建了一个包含100万条数据的bench集合。
你知道同样的测试我用plsql花了多长时间?大约4分钟。
什么,二十几秒你都等不了,看来你真是个急性子。
首先,我们分析下上面的代码逻辑:
我们是往数据库里插入了100万次,每次插入一条数据,所以比较慢。
转化思路:
数据库的性能瓶颈就在io,我们能否只插入一次,
然后一次就插入了100万条数据呢?
当然是可以的。

for(var i=0,arr=[];i<1000000;i++){
arr.push({x:4,j:i})
}
db.bench.save(arr)

大约2秒钟,可以看到速度明显提高了。
由此可见:如果一次性往数据库插入大量数据时可以尝试切换下思路。


插入数据的速度只能看出数据库一方面的能力,
我们还得看取出数据的速度有多快,我们继续测试:

db.bench.findOne({j:999999})

为了公平起见,我取出的是最后一条数据,花了将近1秒钟。
我们先创建一个索引,然后在查询:

db.bench.ensureIndex({j:1},{unique:true})
db.bench.findOne({j:999999})

瞬间得到结果,证明mongodb数据库所宣扬的大规模数据下的查询能力真不是盖的。
这盖可不是锅盖的盖哦,这盖是盖伦的盖。
什么,你还不知道盖伦为何物?
赶紧去搜下国服第一盖伦吧,
这英雄和mongodb一样,屌炸天有木有。