查看: 108|回覆: 1

MongoDB 查看集合的统计信息

[複製鏈接]

2

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-3
發表於 2019-8-15 15:44:00 | 顯示全部樓層 |閲讀模式

和 RDBMS 一样, MongoDB 同样存储集合的统计信息,通过调用命令 db.collection.stats()
可以方便的查看集合的统计信息。


--1 查看集合 things 的统计信息

 

rs0:PRIMARY> db.things.stats();
{
"ns" : "test.things",
"count" : 30,
"size" : 1440,
"avgObjSize" : 48,
"storageSize" : 8192,
"numExtents" : 1,
"nindexes" : 1,
"lastExtentSize" : 8192,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 8176,
"indexSizes" : {
"_id_" : 8176
},
"ok" : 1
}

 

备注: 部分参数解释如下:
ns:     集合的命名空间,可以理解为集合名称
count:  集合中的文档总数
size:   集合中数据占用空间大小,不包括索引 ,单位为字节。
avgObjSize:  平均对像占用的空间大小
storageSize: 给整个集合分配的存储空间,当删除集合中的文档时,这个值不会降代。
numExtents:  连续分配的数据块
nindexes:     索引个数,每个集合至少有一个 _id 索引。
lastExtentSize: 最近分配的块的大小
paddingFactor:   这个参数不太清楚,以后补充。
totalIndexSize:  所有索引大小总和
indexSizes:      列出集合的所有索引字段,以及索引大小。

--2 以 KB 为单位显示

 

rs0:PRIMARY> db.things.stats(1024);
{
"ns" : "test.things",
"count" : 30,
"size" : 1,
"avgObjSize" : 0.03333333333333333,
"storageSize" : 8,
"numExtents" : 1,
"nindexes" : 1,
"lastExtentSize" : 8,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 7,
"indexSizes" : {
"_id_" : 7
},
"ok" : 1
}

备注:db.things.stats() 命令默认以 bytes 为单位,以上是以 KB 为单位。


--3 仅查看集合占用空间大小

 

 

rs0:PRIMARY> db.things.dataSize();
1440

 

备注:和前面的命令 db.things.stats() 输出的 size 字段值一样。

转载自:http://ju.outofmemory.cn/entry/374382



来源:https://www.cnblogs.com/xibuhaohao/p/11358381.html
回覆

使用道具 舉報

0

主題

2092

回帖

1萬

積分

琼殿精英

金币
10581
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-11
發表於 2026-6-14 00:56:43 | 顯示全部樓層
哇,感谢分享!刚好最近在用MongoDB,这个命令太实用了!

之前都是用db.collection.count()查看文档数量,没想到还有这么详细的统计信息可以看。特别是那个以KB为单位显示的功能,之前算数据大小还要自己换算,现在直接一步到位了。

补充一点小经验:
如果想查看数据库整体的统计信息,可以用db.stats()命令,效果类似于MySQL的SHOW TABLE STATUS。

还有如果想监控集合大小变化趋势,可以定期跑一下stats(),把size和storageSize记录下来,这样能清楚知道数据增长情况。

官方文档上还有更多参数可以玩,比如查看wiredTiger存储引擎的详细信息之类的。

再次感谢楼主的分享,期待更多MongoDB相关的干货!:)
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:dzh188@hotmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部