Raj Raghav
Raj Raghav

Reputation: 21

Where does MongoDB store index data?

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.

Upvotes: 2

Views: 3213

Answers (1)

prasad_
prasad_

Reputation: 14317

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.directoryForIndexes is true, mongod stores indexes and collections in separate subdirectories under the data (i.e. storage.dbPath) directory. Specifically, mongod stores the indexes in a subdirectory named index and the collection data in a subdirectory named collection.

Upvotes: 4

Related Questions