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. 在window是下安装hadoop过程

    详细见http://www.cnblogs.com/kinglau/archive/2013/08/20/3270160.html

  2. 查看Java JVM参数配置信息命令

    查看Java JVM参数配置信息命令 java -XX:+PrintCommandLineFlags jvm运行时状态的参数,可以很快找出问题所在.现在把几个命令记录一下:1. jstat这个命令对于 ...

  3. PHP递归排序

    递归算法对于任何一个编程人员来说,应该都不陌生.因为递归这个概念,无论是在PHP语言还是Java等其他编程语言中,都是大多数算法的灵魂. 对于PHP新手来说,递归算法的实现原理可能不容易理解.但是只要 ...

  4. js中数组去重

    编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组 [注]正序去重,会漏掉一些元素. [注]去重倒序. var arr = [10, 20, 30, 40, 30, 20, 20 ...

  5. python 全栈开发,Day81(博客系统个人主页,文章详情页)

    一.个人主页 随笔分类 需求:查询当前站点每一个分类的名称以及对应的文章数 完成这个需求,就可以展示左侧的分类 它需要利用分组查询,那么必须要会基于双下划线的查询. 基于双下划线的查询,简单来讲,就是 ...

  6. java:合并两个排序的整数数组A和B变成一个新的数组。新数组也要有序。

    合并两个排序的整数数组A和B变成一个新的数组.新数组也要有序. 样例 1: 输入: A=[1], B=[1] 输出:[1,1] 样例解释: 返回合并后的数组. 样例 2: 输入: A=[1,2,3,4 ...

  7. Mysql索引为什么用B+树而不用B-树

    先从数据结构的角度来看 我们知道B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域. 这就决定了B+树更适合用来存储外部数据,也就是所 ...

  8. post请求测试代码

    public class TestResourceCommentRestController { private final static String API_URI_DEBUG = "h ...

  9. 宇宙最强VisualStudio2017配置pyQt5用于python3.6的UI界面工具(转)

    宇宙最强VisualStudio2017配置pyQt5用于python3.6的UI界面工具 转载: https://blog.csdn.net/m0_37606112/article/details/ ...

  10. hdu 3068 最长回文【manacher】(模板题)

    <题目链接> 最长回文 Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如ab ...