雖然說很多 MySQL 工具都會提供資料表大小的資訊, 但是有些情況還是使用 SQL 查詢來得正確與快速. 以下面這個例子來說, SQL Maestro for MySQL 可以提供下列的資料表資訊清單:
雖然 Browse Tables 可以顯示資料表的大小, 但是我們可以注意到其中大小超過 2GB 的資料表顯示的資訊是 0. 因此在此文中紀錄查詢資料表大小的 SQL 備用.
information_schema.TABLES
SELECT t.table_schema AS 'Schema Name', t.table_name AS 'Table Name', ROUND(((t.data_length + t.index_length) / 1024 / 1024), 2) 'Size in MB', ROUND(((t.data_length + t.index_length) / 1024 / 1024 / 1024), 2) 'Size in GB' FROM information_schema.TABLES t WHERE t.table_schema = 'MYDB' AND t.data_length > 512 * 1024 * 1024 ORDER BY 'Size in MB' DESC;
上述範例乃是符合 shortie 個人所需, 讀者可參考文件說明自行變化.
SHOW TABLE STATUS
SHOW TABLE STATUS FROM MYDB WHERE Data_length > 512 * 1024 * 1024;
上述範例乃是符合 shortie 個人所需, 讀者可參考文件說明自行變化.