2012-08-07 122 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;