MongoDB数据预热

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
}

集合加载成功。

你可能感兴趣的:(数据库,运维)