MongoDB中的数据库数据大小

30

使用以下命令,我可以获取特定集合的数据大小:

db.collection.dataSize()

如何获取数据库的数据大小?

4个回答

39

在Mongo shell中使用以下命令:

 db.stats()

输出应该像这样:

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

查看更多诊断命令,请点击此处


4
数据大小(datasize)和存储大小(storagesize)的数字属于什么类型? - Waltari
3
dataSize和storageSize以字节为单位。详情请参见-sizing and trimming - CaptainBli
我知道这个问题已经很老了,但是是否有一种方法可以将这些结果插入到不同的集合中?我想每天运行这个脚本来测量数据库增长。 - Racer SQL

4

在Java中使用db.getStats()


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

4
dbStats 命令返回给定数据库的不同存储统计信息。 此文章介绍了您应该监视的不同 MongoDB 性能指标(使用 MMAPv1),您提到的 dataSize 指标测量数据库中所有文档和填充所占用的空间。
要获取数据库在磁盘上的“存储占用”,请查看 fileSize 指标,它对应于数据文件的大小。 它仅在删除数据库时才会减少,并且在删除集合、文档或索引时不受影响。
以下是 dbStats 返回的不同重要存储指标的图表: enter image description here 此外,请注意,使用 MMAPv1 存储引擎时,映射内存(mem.mapped 指标)对应于用于将数据库映射到内存中的虚拟内存的数量,可为您提供对数据库总大小的很好近似。 您可以使用 serverStatus 命令 访问此指标。

1
在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()

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接