MongoDB数据库管理命令touchsql
在2.2版本新增长mongodb
touch命令从数据存储层加载数据到内存中。touch能够加载数据(如文档)索引或文档和索引。使用该shell
命令确保一个集合,和/或它的索引,在另外一个操做以前已经在内存中。经过加载集合或索引到内存中,数据库
mongod能够理想地更加有效地实施随后的操做。touch命令有以下原型格式:
ide
{ touch: [collection], data: [boolean], index: [boolean] }
默认,data和index为false,touch将不会实施操做。例如,加载records集合的数据和索引,你将会在性能
mongo shell中使用以下命令:
spa
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/