размер базы данных в mongodb - PullRequest
26 голосов
/ 30 мая 2011

С помощью следующей команды я могу получить размер данных определенной коллекции:

db.collection.dataSize()

Как получить размер данных базы данных?

Ответы [ 4 ]

37 голосов
/ 30 мая 2011

Используйте следующую команду в mongoshell:

 db.stats()

Вывод должен быть таким:

{
  "collections" : 3,
  "objects" : 80614,
  "dataSize" : 21069700,
  "storageSize" : 39845376,
  "numExtents" : 9,
  "indexes" : 2,
  "indexSize" : 6012928,
  "ok" : 1
}

Подробнее см. Диагностическую команду здесь .

4 голосов
/ 02 июня 2016

Команда dbStats возвращает различную статистику хранения для данной базы данных.Как объяснено в этой публикации о различных метриках производительности MongoDB, которые вы должны отслеживать (с MMAPv1), метрика dataSize, которую вы упомянули, измеряет пространство, занимаемое всеми документами и заполнением в базе данных.Чтобы получить «объем памяти» вашей базы данных на диске, вы должны посмотреть на fileSize метрики, которые соответствуют размеру ваших файлов данных.Он уменьшается только при удалении базы данных и не затрагивается при удалении коллекций, документов или индексов.

Вот диаграмма с различными важными метриками хранения, возвращаемыми dbStats: enter image description here

Также обратите внимание, что с механизмом хранения MMAPv1 отображенная память (mem.mapped метрика), соответствующая количеству виртуальной памяти, используемой для отображения базы данных в память, дает хорошее приближение к общему количествуразмер вашей базы данных.Вы можете получить доступ к этой метрике с помощью команды serverStatus .

4 голосов
/ 11 июля 2012

Использование db.getStats () в Java

CommandResult re = db.getStats();
for(String k: re.keySet()){
    System.out.println(k+"="+re.get(k) );
}

Тогда получите результат, как показано ниже:

serverUsed=127.0.0.1:27017
db=test
collections=3
objects=100004
avgObjSize=67.99876004959802
dataSize=6800148
storageSize=10633216
numExtents=9
indexes=1
indexSize=4406864
fileSize=50331648
nsSizeMB=16
ok=1.0
1 голос
/ 15 июля 2018

В MongoDB:

db.stats()         //For db status
db.<collectionname>.stats() //For collection status

В Python:

connection = pymongo.Connection(host = "127.0.0.1", port = 27017)
db = connection["test_db"]
test_collection = db["test_collection"]
db.command("dbstats") # prints database stats for "test_db"
db.command("collstats", "test_collection") # prints collection-level stats for "test_collection" under "test_db".  

В PHP:

$con= new Mongo()

$stats=$con->dbName->command(array('dbStats' => 1));  // for db.stats()

$stats=$con->dbName->command(array('collStats' => 'collection_name')); // for db.collection_name.stats()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...