I want to create a separate disk to store MongoDB Database. But I realized that, databases also have indexes. So I might need to have disk size more than the size of records.
The question is where does mongo db stores it's index data. In config file we only mention path of logs and db folder.
The question is where does mongo db stores it's index data. In config file we only mention path of logs and db folder.
The index data is stored along with the collection data in the data directory of the MongoDB Server installation. You can also specify the data directory using the --dbpath storage option when you start the mongod.
The files are stored with names like the following, for example:
collection-2-3986418375741882655.wt
index-1-221874391618151955.wt
The first one is a collection data file and the second one is an index data file. For each collection and index, one file for each is created respectively. So, if there are 3 collections and 5 indexes there will be 8 files (the data directory has other files too).
There is also a --directoryperdb option, which when specified:
Uses a separate directory to store data for each database. The directories are under the --dbpath directory, and each subdirectory name corresponds to the database name.
[EDIT Update]: Indexes can be stored in separate directory
MongoDB Configuration File Options - storage.wiredTiger.engineConfig.directoryForIndexes
When
storage.wiredTiger.engineConfig.directoryForIndexesis true,mongodstores indexes and collections in separate subdirectories under the data (i.e. storage.dbPath) directory. Specifically,mongodstores the indexes in a subdirectory namedindexand the collection data in a subdirectory namedcollection.