统计mysql和pgsql库和表占用大小方式
目录
- 适用背景
- mysql
- 每个库的大小,单位MB
- 具体库下的单表大小,单位MB
- pgsql
- 每个库的大小,单位MB
- 统计schema下单表大小,单位MB
- 总结
适用背景
交付项目时,客javascript户需要统计数据库和表占用情况,来评估后续磁盘使用计划。http://www.devze.com
以下sql对应库的版本,mysql为5.7 pgsql为14.x
mysql
每个库的大小,单位MB
use information_schema; select table_schema,round(sum(data_length/1024python/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
JOjavascriptIN
pg_namespace n ON c.relnamespace = n.oid
WHERE
c.relkind = 'r'
GROUP BY
nspname
ORDER BY
total_mb DESC;

统计schema下单表大小,单位MB
SEwww.devze.comLECT
relname AS table_name,
ROUND(pg_relation_size(c.oid) / 1024.0 / 1024.0, 2) AS data_mb -- 表数据大小(MB)
FROM
pg_class c
JOIN
pg_namespace n ON c.relnamespace = n.oid
WHERE
n.nspname = 'schema_name' -- 指定schema名称
AND c.relkind = 'r' -- 只统计普通表
ORDER BY
data_mb DESC;

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。
加载中,请稍侯......
精彩评论