首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 快速查詢表空間佔用與行數統計實戰

     編輯:MySQL 綜合教學

MySQL 快速查詢表空間佔用與行數統計實戰

在日常運維與容量規劃中,快速掌握各表的數據量、索引大小及總佔用空間至關重要。MySQL 的系統庫 information_schema 中的 TABLES 視圖提供了標準化的元數據查詢接口,無需掃描實際數據頁,效率極高。

核心字段解析

字段名含義單位/說明
TABLE_SCHEMA數據庫名-
TABLE_NAME表名-
ENGINE存儲引擎InnoDB, MyISAM 等
TABLE_ROWS預估行數InnoDB 為掃描統計估算值,非精確值
DATA_LENGTH數據文件大小字節;InnoDB 包含聚簇索引數據
INDEX_LENGTH索引文件大小字節;二級索引大小

表總佔用空間 = DATA_LENGTH + INDEX_LENGTH

常用查詢語句集錦

1. 查看指定庫所有表大小與行數(按大小降序)

SELECT 
    TABLE_NAME,
    ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS total_mb,
    ROUND(DATA_LENGTH / 1024 / 1024, 2) AS data_mb,
    ROUND(INDEX_LENGTH / 1024 / 1024, 2) AS index_mb,
    TABLE_ROWS
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'your_db_name'
ORDER BY total_mb DESC;

2. 查看單表詳細空間佔用

SELECT 
    TABLE_NAME,
    ROUND((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024, 2) AS total_mb,
    TABLE_ROWS
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'your_db_name' AND TABLE_NAME = 'target_table';

3. 庫級彙總:各數據庫總大小排名

SELECT 
    TABLE_SCHEMA AS db_name,
    ROUND(SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 / 1024, 2) AS total_gb,
    SUM(TABLE_ROWS) AS total_rows
FROM information_schema.TABLES
GROUP BY TABLE_SCHEMA
ORDER BY total_gb DESC;

實戰輸出示例

+-------------------+------------+------------+
| TABLE_NAME        | total_mb   | TABLE_ROWS |
+-------------------+------------+------------+
| itlearner_record  | 20824.32   | 104917777  |
| hx_record         | 108.15     | 753279     |
| enjoy_data        | 6.66       | 70113      |
| tmp_day_id        | 0.02       | 811        |
+-------------------+------------+------------+

注意事項與最佳實踐

  • TABLE_ROWS 為估算值: InnoDB 通過採樣統計得出,精確行數請用 SELECT COUNT(*)(大表慎用)。
  • 大表查詢性能: information_schema 查詢在表極多(數萬張)時可能較慢,可配合 WHERE TABLE_SCHEMA IN (...) 限定範圍。
  • 分區表處理: 分區表在 TABLES 中每個分區為一行,需按 TABLE_NAME 分組彙總獲取邏輯表大小。
  • 權限要求: 需具備 PROCESS 權限或對應庫的 SELECT 權限。

善用 information_schema.TABLES,能讓 DBA 和開發人員秒級掌握實例空間分布,為分庫分表、歸檔清理、擴容規劃提供可靠數據支撐。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved