技术小胖子 2017-11-08 776浏览量
本文章来给大家介绍一些常用的MySQL查看数据库、表的占用空间大小sql命令吧,希望此教程 对各位同学会有所帮助。
查看各库的大小
代码如下 | 复制代码 |
SELECT SUM(DATA_LENGTH)+SUM(INDEX_LENGTH) FROM information_schema.tables WHERE TABLE_SCHEMA='database_name'; |
结果是以字节为单位,除1024为K,除1048576为M。
查看各表的大小
代码如下 | 复制代码 |
SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM information_schema.tables WHERE TABLE_SCHEMA='database_name' AND TABLE_NAME='table_name'; |
查看表的最后修改时间
代码如下 | 复制代码 |
sELECT TABLE_NAME,UPDATE_TIME FROM information_schema.tables where TABLE_SCHEMA='database_name'; |
information_schema 库的 TABLES 表,主要字段分别是:
TABLE_SCHEMA : 数据库名
TABLE_NAME:表名
ENGINE:所使用的存储引擎
TABLES_ROWS:记录数
DATA_LENGTH:数据大小
INDEX_LENGTH:索引大小
自己应用的一个实例
代码如下 | 复制代码 |
//先进去MySQL自带管理库:information_schema mysql> use information_schema; mysql> select concat(round(sum(data_length/1024/1024),2),'MB') as data_length_MB, |
查看mysql某数据库中所有表的引擎类型:
for i in $(cat tables.txt); do mysql --user=*** --password=*** -h 192.168.*.* 库名 -e "show create table $i;" | awk -F"ENGINE" '{print $2}' | awk '{print $1}' ;done | grep -v ^$ ;done
for循环使用示例:for i in `seq 3`;do echo $i; done
本文转自Tenderrain 51CTO博客,原文链接:http://blog.51cto.com/tenderrain/1610463,如需转载请自行联系原作者
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
分享数据库前沿,解构实战干货,推动数据库技术变革