mysql 查看表空间占用

Faria 2023-11-11 PM 1099℃ 1条

mysql 安装成功之后会有一个information_schema库,它提供了访问数据库元数据的方式

包括数据库信息、数据库中表的信息等。

以下是部分表的说明:

schemata记录的 mysql 中所有数据库的信息

tables记录的是所有数据库中表的信息,包括每个表基本信息(字段列数量,数据容量,索引容量等)

columns记录了表的字段信息

statistics记录了表的索引信息

character_sets记录了 mysql 可用的字符集

collations记录字符集对应的表信息

table_constraints这个表主要是用于记录表的描述存在约束的表和约束类型。

key_column_usage记录具有约束的列

查看所有数据库容量大小(数据容量大到小倒序排)

select
TABLE_SCHEMA as '数据库名',
count(TABLE_SCHEMA) as '表数量',
sum(TABLE_ROWS) as '总记录',
sum(round(DATA_LENGTH/1024/1024, 2)) as '数据容量(MB)',
sum(round(INDEX_LENGTH/1024/1024, 2)) as '索引容量(MB)'
from `TABLES`
group by TABLE_SCHEMA
order by sum(DATA_LENGTH) desc;

查看指定库容量大小

select 
TABLE_SCHEMA as '数据库名',
count(TABLE_SCHEMA) as '表数量',
sum(TABLE_ROWS) as '总记录',
sum(round(DATA_LENGTH/1024/1024,2)) as '数据容量(MB)',
sum(round(INDEX_LENGTH/1024/1024, 2)) as '索引容量(MB)'
from `TABLES` 
where TABLE_SCHEMA=<database>;

查看指定库各表容量大小(数据容量大到小倒序排)

select 
TABLE_SCHEMA as '数据库名',
TABLE_NAME as '表名',
TABLE_ROWS as '总记录',
round(DATA_LENGTH/1024/1024,2) as '数据容量(MB)',
round(INDEX_LENGTH/1024/1024, 2) as '索引容量(MB)'
from `TABLES` 
where TABLE_SCHEMA=<database> 
order by DATA_LENGTH desc;

查看指定库库下某个表容量大小

select 
TABLE_SCHEMA as '数据库名',
TABLE_NAME as '表名',
TABLE_ROWS as '总记录',
round(DATA_LENGTH/1024/1024,2) as '数据容量(MB)',
round(INDEX_LENGTH/1024/1024, 2) as '索引容量(MB)'
from `TABLES` 
where TABLE_SCHEMA=<database> and TABLE_NAME=<table>;
标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~



唉呀 ~ 仅有一条评论


  1. zedkszgngb
    zedkszgngb

    不错不错,我喜欢看 https://www.jiwenlaw.com/

    回复 2024-09-23 09:58