MongoDB数据预热
Mongodb访问磁盘中的数据要比访问内存中的数据慢得多,而且mongodb的内存是依靠
操作自身管理的,不想mysql中中的innodb,存储引擎,还需要管理自己的内存调配.
因此事先将磁盘中的数据加载到内存中可以大大提高mongodb的性能。
将数据库/数据目录移至内存:
for file in /data/db/brains.* do dd if=$file of=/dev/null done
当要加载的数据大于内存大小的,之前加载的数据可能会挤兑出内存,所以有的时候将整个数据目录加载
到数据库中意义并不是很大,
如果出现这个情况可以只将访问比较频繁的集合加载到内存中
db.runCommand({touch:"recordname",data:true,index:true})
rs0:PRIMARY> db.runCommand({touch:"recordname",data:true,index:true})
{
"data" : {
"numRanges" : 3,
"millis" : 91
},
"indexes" : {
"num" : 1,
"numRanges" : 1,
"millis" : 182
},
"ok" : 1
}
集合加载成功。
转载于:https://blog.51cto.com/ultrasql/1706622