文章目录
一、如何判断碎片化
1、数据库空间占用信息查询
1)查看数据库存储空间占用
-- 通过db.stats()函数查询storageSize参数大小
use db
db.stats()
-- 直接查看目标DB物理存储大小
use db
db.runCommand({dbStats : 1,scale : 1073741824}) //scale指定单位为GB
2)查看集合存储空间占用
-- 通过db.collname.stats()函数查询storageSize参数大小
use db
db.collname.stats()
-- 直接查看目标DB物理存储大小
use db
db.runCommand({"collStats":"oplog.rs",scale:1048576}) //scale指定单位,单位为MB
2、碎片化问题查看,查看目前集合可回收空间
db.collname.stats().wiredTiger["block-manager"]["file bytes available for reuse"]
rs0:PRIMARY> db.aa.stats().wiredTiger["block-manager"]["file bytes available for reuse"]
16384
二、如何处理碎片化
2.1 compact
1、语法
db.runCommand({compact:'dsir',force:true})
2、compact所需权限