MongoDB数据预热

Mongodb访问磁盘中的数据要比访问内存中的数据慢得多,而且mongodb的内存是依靠

操作自身管理的,不想mysql中中的innodb,存储引擎,还需要管理自己的内存调配.

因此事先将磁盘中的数据加载到内存中可以大大提高mongodb的性能。

 

将数据库/数据目录移至内存:

1
2
3
4
for  file  in  /data/db/brains .*
do
dd  if =$ file  of= /dev/null
done

 

当要加载的数据大于内存大小的,之前加载的数据可能会挤兑出内存,所以有的时候将整个数据目录加载

到数据库中意义并不是很大,

 

如果出现这个情况可以只将访问比较频繁的集合加载到内存中

1
db.runCommand({touch: "recordname" ,data: true , index : true })

 

1
2
3
4
5
6
7
8
9
10
11
12
13
rs0: PRIMARY > db.runCommand({touch: "recordname" ,data: true , index : true })
{
         "data"  : {
                 "numRanges"  : 3,
                 "millis"  : 91
         },
         "indexes"  : {
                 "num"  : 1,
                 "numRanges"  : 1,
                 "millis"  : 182
         },
         "ok"  : 1
}

集合加载成功。




















本文转自UltraSQL51CTO博客,原文链接: http://blog.51cto.com/ultrasql/1706622,如需转载请自行联系原作者



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值