MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Perché un database MongoDB vuoto è così grande?

A seconda della versione di MongoDB e del motore di archiviazione configurato, diversi file di dati e metadati verranno preallocati all'avvio. Questo è il comportamento previsto:un'implementazione "vuota" genera comunque dati diagnostici e di pulizia.

In base all'elenco delle directory, stai eseguendo MongoDB 3.2 che per impostazione predefinita utilizza il motore di archiviazione WiredTiger. WiredTiger alloca fino a 100 MB per file journal, quindi la tua nuova distribuzione ha ~300 MB di file journal preallocati :

     100M    ./journal/WiredTigerLog.0000000003
     100M    ./journal/WiredTigerPreplog.0000000001
     100M    ./journal/WiredTigerPreplog.0000000002

Oltre ai file journal, altri metadati che verranno creati nel tuo dbpath (senza che tu abbia ancora creato database esplicitamente) includerà:

  • Un local database con una raccolta limitata denominata startup_log con alcune informazioni diagnostiche su ogni chiamata di avvio di questa istanza di mongod . Ci sarà una raccolta associata e un file di indice per local.startup_log; i nomi dei file sono opachi ma come i primi file creati suppongo che nel tuo esempio questi potrebbero essere:

     36K    ./collection-0-3697658674625742251.wt
     36K    ./index-1-3697658674625742251.wt
    
  • Più file di metadati WiredTiger. Ci sarà sempre almeno un database in una distribuzione a partire da local il database viene creato per impostazione predefinita per il startup_log :

    4.0K    ./WiredTiger
    4.0K    ./WiredTiger.lock
    4.0K    ./WiredTiger.turtle
    4.0K    ./WiredTigerLAS.wt
     16K    ./_mdb_catalog.wt
     36K    ./sizeStorer.wt
     44K    ./WiredTiger.wt
    
  • Un diagnostic.data directory; questo serve per il campionamento periodico delle metriche sullo stato del server:

    168K    ./diagnostic.data/metrics.2016-06-10T11-17-58Z-00000
    72K    ./diagnostic.data/metrics.2016-06-10T10-19-31Z-00000