MySQL查询数据库大小

MySQL查询数据库大小,mysql,sql,database,size,storage,Mysql,Sql,Database,Size,Storage,是否有一个查询或函数可以用来确定MySQL中数据库的大小?如果不是,在MySQL中查找数据库大小的典型方法是什么 我在谷歌搜索时发现选择CONCAT(sum(ROUND((DATA_LENGTH+INDEX_LENGTH-DATA_FREE)/1024/1024),2)),“MB”)作为信息_SCHEMA.TABLES中的大小,其中表_SCHEMA类似于“%YOUR_DB_NAME%” 它返回一个我知道是400MB的数据库,474989023196466.25MB 尝试此查询: SELECT t

是否有一个查询或函数可以用来确定MySQL中数据库的大小?如果不是,在MySQL中查找数据库大小的典型方法是什么

我在谷歌搜索时发现
选择CONCAT(sum(ROUND((DATA_LENGTH+INDEX_LENGTH-DATA_FREE)/1024/1024),2)),“MB”)作为信息_SCHEMA.TABLES中的大小,其中表_SCHEMA类似于“%YOUR_DB_NAME%”

它返回一个我知道是400MB的数据库,
474989023196466.25MB

尝试此查询:

SELECT table_schema AS "Data Base Name", 
sum( data_length + index_length ) / 1024 / 1024 AS "Data Base Size in MB" 
FROM information_schema.TABLES GROUP BY table_schema ;
或者,如果您想要取整:

SELECT table_schema AS "Data Base Name", 
ROUND(SUM( data_length + index_length ) / 1024 / 1024, 2) AS "Data Base Size in MB" 
FROM information_schema.TABLES GROUP BY table_schema ;
尝试:


在我所有的表中,data_free远大于data_length,这意味着您的查询将返回一个负数。也许它将其解释为一个无符号正整数,因此得到的结果是无意义的。当我尝试粘贴该查询时,我得到错误“BIGINT UNSIGNED value超出范围”。对于特定数据库/表的大小,此页中提供的答案将帮助您回答问题吗@frederj你的链接是在这之后被问到的问题one@Prophet问题的日期并不重要。目标问题应该是基于问题的最佳问题,并张贴答案。
SELECT table_schema, sum(data_length + index_length) FROM information_schema.TABLES GROUP BY table_schema;
SELECT table_schema "DB Name", 
       Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" 
FROM   information_schema.tables 
GROUP  BY table_schema;