查詢 MySQL 資料表大小的 SQL

雖然說很多 MySQL 工具都會提供資料表大小的資訊, 但是有些情況還是使用 SQL 查詢來得正確與快速. 以下面這個例子來說, SQL Maestro for MySQL 可以提供下列的資料表資訊清單:

SQL Maestro for MySQL – Browse Tables

雖然 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;
Sample output

上述範例乃是符合 shortie 個人所需, 讀者可參考文件說明自行變化.

SHOW TABLE STATUS

SHOW TABLE STATUS FROM MYDB WHERE Data_length > 512 * 1024 * 1024;
Sample output

上述範例乃是符合 shortie 個人所需, 讀者可參考文件說明自行變化.

參考資料

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料