博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实战:mysql统计指定架构的全部表的数据和索引大小情况-v2
阅读量:5281 次
发布时间:2019-06-14

本文共 3154 字,大约阅读时间需要 10 分钟。

PS:第一个版本号里未做输入的schema_name和table_name推断,改动了一下!再次share!

 

 

#统计指定架构的全部表的数据和索引大小情况

#tablesize.sh
#!/bin/sh

if [ "$#" -gt 2 -o "$#" -lt 1 ];then

echo "**********************************"
echo "too many input parameters"
echo "**********************************"
echo "USAGE01: $0 schema_name table_name"
echo "eg01: $0 wind t1"
echo "USAGE02: $0 schema_name "
echo "eg02: $0 wind "
exit 1;
fi

#set mysql evn
MYSQL_USER=system  #mysql的username
MYSQL_PASS='password'  #mysql的登录用户密码
MYSQL_HOST=192.168.2.188

judegedate_01="judegedate01.`date +%Y%m%d%H%M%S`.txt"

judegedate_02="judegedate02.`date +%Y%m%d%H%M%S`.txt"

SCHEMA_NAME=$1
TABLE_NAME=$2

#judege

SCHEMA_JUDEGE="select schema_name from information_schema.schemata where schema_name='${SCHEMA_NAME}';"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${SCHEMA_JUDEGE}" >${judegedate_01}

TABLE_JUDEGE="select table_name from information_schema.tables where table_name='${TABLE_NAME}';"
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${TABLE_JUDEGE}" >${judegedate_02}

 

if [ "$#" -eq 2 ];then

 if [ ! -s "${judegedate_01}" ];then
 echo "****************************************************************************"
 echo "you input schema_name ${SCHEMA_NAME} not exits,pleae check your databases"
 echo "*****************************************************************************"
 rm -rf ${judegedate_01}
 rm -rf ${judegedate_02}
 exit 0
 fi
 if [ ! -s "${judegedate_02}" ];then
 echo "*****************************************************************************"
 echo "you input table_name ${TABLE_NAME} not exits,pleae check your databases"
 echo "*****************************************************************************"
 rm -rf ${judegedate_01}
 rm -rf ${judegedate_02}
 exit 0
 fi

 SQL_CMD="select table_schema, table_name,table_rows,

 round(sum(data_length+index_length)/1024/1024) as total_MB,
 round(sum(data_length)/1024/1024) as data_MB,
 round(sum(index_length)/1024/1024) as index_MB
 from information_schema.tables  where table_type='BASE TABLE' and table_schema='${SCHEMA_NAME}'
 and table_name='${TABLE_NAME}'
 group by table_schema, table_name,table_rows;"
 echo "the result is :"
 mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${SQL_CMD}"
 rm -rf ${judegedate_01}
 rm -rf ${judegedate_02}
else 
 if [ ! -s "${judegedate_01}" ];then
 echo "*****************************************************************************"
 echo "you input schema_name ${SCHEMA_NAME} not exits,pleae check your databases"
 echo "*****************************************************************************"
 rm -rf ${judegedate_01}
 rm -rf ${judegedate_02}
 exit 0
 else
 SQL_CMD="select table_schema, table_name,table_rows,
 round(sum(data_length+index_length)/1024/1024) as total_MB,
 round(sum(data_length)/1024/1024) as data_MB,
 round(sum(index_length)/1024/1024) as index_MB
 from information_schema.tables  where table_type='BASE TABLE' and table_schema='${SCHEMA_NAME}'
 group by table_schema, table_name,table_rows;"
 echo "the result is :"
 mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${SQL_CMD}"
 rm -rf ${judegedate_01}
 rm -rf ${judegedate_02}
 fi
fi

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/bhlsheji/p/5410055.html

你可能感兴趣的文章
box-flex不均分问题
查看>>
Python--GIL 详解
查看>>
Oracle数据导入Mysql中
查看>>
BZOJ-4424 &&CodeForces-19E Fairy DP+dfs (Link-Cut-Tree可A)
查看>>
MongoDB学习笔记——聚合操作之group,distinct,count
查看>>
大道至简读后感(第四章)
查看>>
IDA IDC Tutorials: Additional Auto-Commenting
查看>>
k8s-存储卷1-十二
查看>>
在Android中Intent的概念及应用(二)——Intent过滤器相关选项
查看>>
数据库备份问题
查看>>
前端面试题(4)iframe有哪些优点?iframe缺点是什么?
查看>>
SQLSERVER存储过程基本语法
查看>>
HDU 2067 小兔的棋盘
查看>>
HDU 1713 相遇周期
查看>>
淘宝质量属性场景分析
查看>>
MSYS2更换软件源
查看>>
一步步学习javascript基础篇(4):面向对象设计之创建对象(工厂、原型和构造函数等模式)...
查看>>
python,在已有的文件夹下创建新的时间文件夹。
查看>>
zz视频原理
查看>>
真彩色制式下IplImage转成CBitmap格式
查看>>