2012-08-07 128 views
10

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

我是谷歌上搜索,发现SELECT CONCAT(sum(ROUND(((DATA_LENGTH + INDEX_LENGTH - DATA_FREE)/1024/1024),2))," MB") AS Size FROM INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA like '%YOUR_DB_NAME%' ;

,并返回,我所知道的是400MB为474989023196466.25 MB数据库!

+0

在我所有的表, data_free比data_length大得多,这意味着您的查询将返回一个负数。也许它将它解释为无符号的正整数,因此是无意义的结果。当我尝试粘贴该查询时,出现错误“BIGINT UNSIGNED值超出范围”。 – octern 2012-08-07 18:38:40

+0

对于本页面提供的特定数据库/表格答案的大小,将有助于您http://www.rathishkumar.in/2017/12/how-to-find-database-and-table-size-in-mysql.html – rathishDBA 2017-12-29 12:45:33

回答

23

尝试与此查询:

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 ; 
3

尝试:

SELECT table_schema, sum(data_length + index_length) FROM information_schema.TABLES GROUP BY table_schema; 
0
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;