MySQL查询空间使用情况

最近更新时间:2021-01-06 18:11:53

查看PDF

数据库占用空间

统计数据库占用空间可使用以下SQL:

select TABLE\_SCHEMA,concat\(truncate\(sum\(DATA\_LENGTH+DATA\_FREE+INDEX\_LENGTH\)/1024/1024,2\),' MB'\) as total\_size, concat\(truncate\(sum\(DATA\_LENGTH\)/1024/1024,2\),' MB'\) as data\_size,concat\(truncate\(sum\(DATA\_FREE\)/1024/1024,2\),' MB'\) as data\_free, concat\(truncate\(sum\(INDEX\_LENGTH\)/1024/1024,2\),'MB'\) as index\_size from information\_schema.tables group by TABLE\_SCHEMA order by data\_length desc;

其结果中total_size为总占用空间,data_size为表占用空间,data_free为表碎片占用空间,index_size为表索引占用空间。

表占用空间

统计表占用空间方法可使用以下SQL:

select CONCAT\(TABLE\_SCHEMA,'.',TABLE\_NAME\) as table\_name,concat\(truncate\(sum\(DATA\_LENGTH+DATA\_FREE+INDEX\_LENGTH\)/1024/1024,2\),' MB'\) as total\_size, concat\(truncate\(sum\(DATA\_LENGTH\)/1024/1024,2\),' MB'\) as data\_size,concat\(truncate\(sum\(DATA\_FREE\)/1024/1024,2\),' MB'\) as data\_free, concat\(truncate\(sum\(INDEX\_LENGTH\)/1024/1024,2\),'MB'\) as index\_size from information\_schema.tables group by TABLE\_NAME order by data\_length desc;

其结果中total_size为总占用空间,data_size为表占用空间,data_free为表碎片占用空间,index_size为表索引占用空间。

如何整理表碎片

optimize table table\_name;

备注:

1.MySQL官方建议不要经常(每小时或每天)进行碎片整理,一般根据实际情况,只需要每周或者每月整理一次即可。

2.OPTIMIZE TABLE只对MyISAM,BDB和InnoDB表起作用,尤其是MyISAM表的作用最为明显。此外,并不是所有表都需要进行碎片整理,一般只需要对包含上述可变长度的文本数据类型的表进行整理即可。

3.在OPTIMIZE TABLE运行过程中,MySQL会锁定表。

文档内容是否对您有帮助?

根本没帮助
文档较差
文档一般
文档不错
文档很好

在文档使用中是否遇到以下问题

内容不全,不深入
内容更新不及时
描述不清晰,比较混乱
系统或功能太复杂,缺乏足够的引导
内容冗长

更多建议

0/200

评价建议不能为空

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

问题反馈