获取当前db的信息:db.stats():
返回整个数据库的基本情况。可以参入一个number类型参数,它会将数据按指定的倍数去显示数据,例如 db.stats(1024) 则按kb显示数据,默认按byte显示。
db.stats(); { "db": "test", "collections": 3, "objects": 13, "avgObjSize": 36, "dataSize": 468, "storageSize": 13312, "numExtents": 3, "indexes": 1, "indexSize": 8192, "fileSize": 201326592, "nsSizeMB" : 16, "dataFileVersion" : { "major" : 4, "minor" : 6 }, "ok": 1 }
db : “test” ,表示当前是针对”test”这个数据库的描述。
collections : 3,表示当前数据库有多少个collections.可以通过运行show collections查看当前数据库具体有哪些collection.
objects : 13,表示当前数据库所有collection总共有多少行数据。显示的数据是一个估计值,并不是非常精确。
avgObjSize : 36,表示每行数据是大小,也是估计值,单位是bytes
dataSize : 468,表示当前数据库所有数据的总大小,不是指占有磁盘大小。单位是bytes
storageSize : 13312,表示当前数据库占有磁盘大小,单位是bytes,因为mongodb有预分配空间机制,为了防止当有大量数据插入时对磁盘的压力,因此会事先多分配磁盘空间。
numExtents : 3,连续分配的数据块。
indexes : 1,索引个数。
indexSize : 8192,索引占用空间大小。
fileSize : 201326592,物理存储文件的大小。
nsSizeMB : 16,命名空间文件大小。
dataFileVersion” : {
“major” : 数据文件主版本号
“minor” : 次版本号
}。
尽量不要再线上使用:db.collection_name.validate(true)
从 MongoDB 3.6 开始,对于 WiredTiger 存储引擎,只有full
验证过程将强制检查点并将所有内存中数据刷新到磁盘,然后再验证磁盘上的数据。
-
db.collection.validate()方法可能会占用大量资源,并且可能会影响 MongoDB 实例的性能,且执行后强制退出都没用,杀伤力较大。
-
db.collection.validate()方法获得对集合的排他锁。这将阻止对集合的所有读取和写入,直到操作完成。在辅助服务器上运行时,该操作可以阻止该辅助服务器上的所有其他操作,直到完成为止。
-
db.collection.validate()方法可能很慢,尤其是在较大的数据集上。
- 要对集合
myCollection
进行完全验证
db.myCollection.validate( { full: true } ) db.myCollection.validate(true)
###################################