MongoDB数据库管理命令touch

MongoDB数据库管理命令touch

 

在2.2版本新增加

 

touch命令从数据存储层加载数据到内存中。touch可以加载数据(如文档)索引或文档和索引。使用该

命令确保一个集合,和/或它的索引,在另一个操作之前已经在内存中。通过加载集合或索引到内存中,

mongod可以理想地更加有效地实施随后的操作。touch命令有如下原型格式:  

{ touch: [collection], data: [boolean], index: [boolean] }

 

默认,data和index为false,touch将不会实施操作。例如,加载records集合的数据和索引,你将会在

mongo shell中使用如下命令:  

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

touch将不会阻塞一个mongod实例上的读写操作,可以运行在复制集的辅助成员上。

 

考虑

 

性能影响

 

使用touch来控制或调整mongod存储在内存中的内容,可以移走在内存中的其他记录数据并有碍性能。在

生产系统中小心使用。

 

复制和辅助成员

 

如果你在一个辅助成员上运行touch,辅助成员会进入RECOVERING状态,在touch操作期间阻止客户端发

送读操作。当touch完成,辅助成员将会自动返回SECONDARY状态。

 

存储引擎

 

在版本3.0.0修改

 

如果当前的存储引擎不支持touch,touch命令将会返回错误。

MMAPv1存储引擎支持touch。

WiredTiger存储引擎不支持touch。

 

参见:https://docs.mongodb.org/manual/reference/command/touch/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值