- Reference >
- Database Commands >
- Administration Commands >
- touch
touch¶
On this page
-
touch
¶ The
touch
command loads data from the data storage layer into memory.touch
can load the data (i.e. documents) indexes or both documents and indexes. Use this command to ensure that a collection, and/or its indexes, are in memory before another operation. By loading the collection or indexes into memory,mongod
will ideally be able to perform subsequent operations more efficiently. Thetouch
command has the following prototypical form:{ touch: [collection], data: [boolean], index: [boolean] }
By default,
data
andindex
are false, andtouch
will perform no operation. For example, to load both the data and the index for a collection namedrecords
, you would use the following command in themongo
shell:db.runCommand({ touch: "records", data: true, index: true })
touch
will not block read and write operations on amongod
, and can run on secondary members of replica sets.
Considerations¶
Performance Impact¶
Using touch
to control or tweak what a
mongod
stores in memory may displace other records
data in memory and hinder performance. Use with caution in
production systems.
Replication and Secondaries¶
If you run touch
on a secondary, the secondary will
enter a RECOVERING
state to prevent clients from sending
read operations during the touch
operation. When
touch
finishes the secondary will automatically
return to SECONDARY
state. See
state
for more information on
replica set member states.
Storage Engines¶
Changed in version 3.0.0.
If the current storage engine does not support touch
,
the touch
command will return an error.
The MMAPv1 storage engine supports touch
.
The WiredTiger storage engine does not support touch
.