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/