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

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

#tablesize.sh

#!/bin/sh

#ocpyang@126.com

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

实战:mysql统计指定架构的全部表的数据和索引大小情况-v2的更多相关文章

  1. mysql统计指定数据库的各表的条数

    mysql统计指定数据库的各表的条数 SELECT table_schema,table_name,table_rows,CREATE_TIME FROM TABLES WHERE TABLE_SCH ...

  2. Mysql 查看表数据以及索引大小

    如果想查看 Mysql 数据库的总的数据量或者某个表的数据或者索引大小,可以使用系统库 information_schema 来查询,这个系统库中有一个 TABLES 表,这个表是用来记录数据库中表的 ...

  3. MySQL如果频繁的修改一个表的数据,那么这么表会被锁死。造成假死现象。

    MySQL如果频繁的修改一个表的数据,那么这么表会被锁死.造成假死现象. 比如用Navicat等连接工具操作,Navicat会直接未响应,只能强制关闭软件,但是重启后依然无效. 解决办法: 首先执行: ...

  4. MySQL数据分析-(13)表操作补充:索引

    大家好,我是jacky朱元禄,很高兴继续跟大家学习MySQL数据分析实战,今天跟大家分享的主题是表补充之索引: (一)前面课程的小节以及本节课程的逻辑梳理 在正式分享主题之前,jacky先跟大家捋顺一 ...

  5. mysql 开发进阶篇系列 50 表的数据导入(load data infile,mysqlimport )

    一.概述 上篇讲到的表的数据导出(select .. into outfile 或者mysqldump),这篇继续讲表的数据导入,导入也同样有二个方法,分别是load data infile... 和 ...

  6. mysql利用navicat导出表结构和表中数据

    LZ在网上搜索了要如何导出mysql的表结构和表中数据,发现有的方法不好用 记录一下好用的方式: 用navicat打开DB链接后,点击数据库,右击选择转储SQL文件,然后选择结构和数据: 之后弹出新的 ...

  7. MySQL 数据库中如何把A表的数据插入到B表?

    web开发中,我们经常需要将一个表的数据插入到另外一个表,有时还需要指定导入字段,设置只需要导入目标表中不存在的记录,虽然这些都可以在程序中拆分成简单sql来实现,但是用一个sql的话,会节省大量代码 ...

  8. Java查询MySQL数据库指定数据库中所有表名、字段名、字段类型、字段长度、字段描述

    1,查询方法 public static List<Map<String, String>> getColumnInfoByTableName(String databaseN ...

  9. mysql统计一个库里面的表的总数

    SELECT COUNT(TABLE_NAME) FROM information_schema.tables WHERE TABLE_SCHEMA = 'weixin_platform' weixi ...

随机推荐

  1. Android studio下将项目代码上传至github包括更新,同步,创建依赖

    AS中设置GIT 一.开篇 本文讲如何使用Android Studio将项目上传到github,虽然讲上传github的文章很多,但是大部分都是使用Git Bash命令行,虽然效率高些,但是有点麻烦, ...

  2. OCM_第五天课程:Section2 —》AGENT 的安装 、GC 的使用

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  3. 视觉显著性检测(Visual saliency detection)相关概念

    视觉显著性检测(Visual saliency detection)指通过智能算法模拟人的视觉特点,提取图像中的显著区域(即人类感兴趣的区域). 视觉注意机制(Visual Attention Mec ...

  4. linux 取消笔记本触摸键

    关闭触摸 sudo rmmod psmouse 关闭触摸和按键 sudo modprobe -r psmouse 打开 sudo modprobe psmouse

  5. 格式化输出的方法:%、.format()、f

    a = '123'a1 = '456'a2 = '789' %占位符 text = "a=%s"%atext1 = "a=%s,a1=%s,a2=%s"%(a, ...

  6. 绝对定位后,position:absolute;不能使用margin: 0 auto;实现居中;

    声明: web小白的笔记,欢迎大神指点!联系QQ:1522025433. 我们都知道margin: 0 auto:可也实现块状元素的水平居中:但是对于绝对顶为的元素就会失效: 请看实例: <!d ...

  7. (第7篇)灵活易用易维护的hadoop数据仓库工具——Hive

    摘要: Hive灵活易用且易于维护,十分适合数据仓库的统计分析,什么样的结构让它具备这些特性?我们如何才能灵活操作hive呢? 博主福利 给大家推荐一套hadoop视频课程 [百度hadoop核心架构 ...

  8. android 换行符(\n) 在TextView中显示不正常的问题

    问题描述 在Android开发,使用TextView设置换行的时候,会有这种情况: 1.如果直接在XML文件中写入"aaaaa\nbbbb"可以换行,显示为: aaaaabbbbb ...

  9. 「2017 山东一轮集训 Day7」逆序对

    题解: 满满的套路题.. 首先显然从大到小枚举 然后每次生成的逆序对是1----(i-1)的 这样做dp是nk的 复杂度太高了 那我们转化一下问题 变成sigma(ai   (ai<i)  )= ...

  10. [HDU] 5306 Gorgeous Sequence [区间取min&求和&求max]

    题解: 线段树维护区间取min求和求max 维护最小值以及个数,次小值 标记清除时,分情况讨论 当lazy>max1 退出 当max1>lazy>max2(注意不要有等号) 更新 否 ...