首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

快速查看 MySQL 表空間佔用與行數:information_schema 實用查詢

     編輯:MySQL 資料庫相關知識

一條 SQL 掌握全庫表大小統計

`information_schema.TABLES` 視圖記錄了所有表的儲存引擎、行數、數據大小、索引大小等元數據,無需 `SHOW TABLE STATUS` 逐表查看。

關鍵欄位

  • `TABLE_SCHEMA`:資料庫名
  • `TABLE_NAME`:表名
  • `ENGINE`:儲存引擎
  • `TABLE_ROWS`:預估行數 (InnoDB 為近似值)
  • `DATA_LENGTH`:數據大小 (位元組)
  • `INDEX_LENGTH`:索引大小 (位元組)

常用查詢範例

-- 1. 查看某庫所有表大小與行數
SELECT TABLE_NAME,
       DATA_LENGTH + INDEX_LENGTH AS total_size_bytes,
       TABLE_ROWS
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'your_db'
ORDER BY total_size_bytes DESC;

-- 2. 查看單表大小
SELECT DATA_LENGTH + INDEX_LENGTH AS total_size, TABLE_ROWS
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'your_db' AND TABLE_NAME = 'your_table';

-- 3. 統計全庫總大小
SELECT TABLE_SCHEMA AS db_name,
       SUM(DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 AS total_mb
FROM information_schema.TABLES
GROUP BY TABLE_SCHEMA;

注意事項

  • `TABLE_ROWS` 對 InnoDB 為估算值,精確行數需 `SELECT COUNT(*)`。
  • 分區表每個分區單獨列為一行,需按 `TABLE_NAME` 聚合。
  • 大量表查詢可能佔用較多資源,建議低峰執行或加 `LIMIT`。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved