mongodb/mysql 查看数据库占用磁盘空间大小

一、mongodb

1、查看整个数据库

默认是bytes单位

db.stats();

返回:

{
    "db" : "xxx",   //当前数据库
    "collections" : 27,  //当前数据库多少表 
    "objects" : 18738550,  //当前数据库所有表多少条数据
    "avgObjSize" : 1153.54876188392, //每条数据的平均大小
    "dataSize" : 21615831152.0,  //所有数据的总大小
    "storageSize" : 23223312272.0,  //所有数据占的磁盘大小 
    "numExtents" : 121,
    "indexes" : 26,   //索引数 
    "indexSize" : 821082976,  //索引大小 
    "fileSize" : 25691160576.0,  //预分配给数据库的文件大小
    "nsSizeMB" : 16,
    "dataFileVersion" : {
        "major" : 4,
        "minor" : 5
    },
    "extentFreeList" : {
        "num" : 1,
        "totalSize" : 65536
    },
    "ok" : 1.0
}

scale参数
可以通过传参数,比如

db.stats(1024)
//得到的是 KB 单位的
db.stats(1073741824);
//得到的是 G 单位的

这里的objects以及avgObjSize还是bytes为单位的,不受参数影响

2、查看数据库表

db.posts.stats(); 
{ 
  "ns" : "test.posts", 
  "count" : 1, 
  "size" : 56, 
  "avgObjSize" : 56, 
  "storageSize" : 8192, 
  "numExtents" : 1, 
  "nindexes" : 1, 
  "lastExtentSize" : 8192, 
  "paddingFactor" : 1, 
  "systemFlags" : 1, 
  "userFlags" : 0, 
  "totalIndexSize" : 8176, 
  "indexSizes" : { 
    "_id_" : 8176 
  }, 
  "ok" : 1 
}

二、mysql

1、查看所有数据库

SELECT
	table_schema,
	SUM( data_length + index_length ) / 1024 / 1024 AS total_mb,
	SUM( data_length ) / 1024 / 1024 AS data_mb,
	SUM( index_length ) / 1024 / 1024 AS index_mb,
	COUNT( * ) AS TABLES,
	CURDATE( ) AS today 
FROM
	information_schema.TABLES 
GROUP BY
	table_schema 
ORDER BY
	2 DESC;

2、查看某一个库

SELECT
	CONCAT( TRUNCATE ( SUM( data_length ) / 1024 / 1024, 2 ), 'mb' ) AS data_size,
	CONCAT( TRUNCATE ( SUM( max_data_length ) / 1024 / 1024, 2 ), 'mb' ) AS max_data_size,
	CONCAT( TRUNCATE ( SUM( data_free ) / 1024 / 1024, 2 ), 'mb' ) AS data_free,
	CONCAT( TRUNCATE ( SUM( index_length ) / 1024 / 1024, 2 ), 'mb' ) AS index_size 
FROM
	information_schema.TABLES 
WHERE
	table_schema = 'test';
posted @ 2019-03-12 13:17  王图思睿  阅读(321)  评论(0)    收藏  举报