統(tǒng)計mysql和pgsql庫和表占用大小方式
更新時間:2025年10月31日 09:46:48 作者:學無止境的寶媽
本文介紹了統(tǒng)計數據庫和表占用情況的方法,適用于MySQL 5.7和PostgreSQL 14.x版本,通過SQL查詢,可以獲取每個庫和表的具體大小,幫助評估磁盤使用計劃
適用背景
交付項目時,客戶需要統(tǒng)計數據庫和表占用情況,來評估后續(xù)磁盤使用計劃。
以下sql對應庫的版本,mysql為5.7 pgsql為14.x
mysql
每個庫的大小,單位MB
use information_schema; select table_schema,round(sum(data_length/1024/1024),2) as data from tables group by table_schema order by data desc;

具體庫下的單表大小,單位MB
use information_schema; select table_name,round(sum(data_length/1024/1024),2) as data from tables where table_schema='db_name' group by table_name order by data desc;

pgsql
每個庫的大小,單位MB
SELECT
nspname AS table_schema,
ROUND(SUM(pg_total_relation_size(c.oid)) / 1024.0 / 1024.0, 2) AS total_mb
FROM
pg_class c
JOIN
pg_namespace n ON c.relnamespace = n.oid
WHERE
c.relkind = 'r'
GROUP BY
nspname
ORDER BY
total_mb DESC;

統(tǒng)計schema下單表大小,單位MB
SELECT
relname AS table_name,
ROUND(pg_relation_size(c.oid) / 1024.0 / 1024.0, 2) AS data_mb -- 表數據大?。∕B)
FROM
pg_class c
JOIN
pg_namespace n ON c.relnamespace = n.oid
WHERE
n.nspname = 'schema_name' -- 指定schema名稱
AND c.relkind = 'r' -- 只統(tǒng)計普通表
ORDER BY
data_mb DESC;

總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
mysql創(chuàng)建存儲過程實現往數據表中新增字段的方法分析
這篇文章主要介紹了mysql創(chuàng)建存儲過程實現往數據表中新增字段的方法,結合實例形式對比分析了通過存儲過程新增字段相關操作技巧,需要的朋友可以參考下2018-12-12

