O nível de compactação pode ser determinado comparando o tamanho de dados em uma coleção por meio de db.stats. dataSize
fornece a quantidade de dados na coleção, em que storageSize
informa o tamanho dos arquivos. dataSize < = storageSize, mas quão grande é a diferença deve dizer-lhe quanto ganho obterá através da compactação.
O Mongo não permite que os objetos não sejam totalmente co-localizados, portanto você não obterá casos em que um objeto esteja espalhado pelos arquivos de dados. Onde isto entra em jogo é se um objeto se expande além da alocação livre, todo o objeto tem que ser reescrito em algum lugar maior.
Quando eu estava jogando com bancos de dados do Mongo, uma compactação em uma janela de manutenção trimestral era tudo que precisávamos. Porém, nosso conjunto de dados não tinha muitas exclusões, por isso não criamos vazios com frequência. Para descobrir sua taxa, acompanhe esses dois valores de dbStats e veja como eles se movem com o tempo.