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. go语言标准库 时刻更新

    Packages   Standard library Other packages Sub-repositories Community Standard library ▾ Name Synops ...

  2. Mac下brew安装与配置mysql

    一.打开mac控制台 $ brew install mysql 二.启动mysql服务 $ mysql.server start 三.初始化mysql配置 1 rainMacBook-Pro:~ co ...

  3. ZOJ 2314 Reactor Cooling(无源汇有上下界可行流)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2314 题目大意: 给n个点,及m根pipe,每根pipe用来流躺 ...

  4. Ext.js入门

    一:ExtJs简介: ExtJs通常简称为Ext,它是一个非常优秀的Ajax框架,用Javascript编写,它与后台技术无关,可以用来开发具有炫丽外观的富客户端应用.Ext所开发的多彩界面吸引了许多 ...

  5. Ckeditor一种很方便的文本编辑器

    ckeditor官网:http://ckeditor.com/ 这里介绍ckeditor的其中一个的用法,自己做小项目练手非常的适合,上手非常的快. 首先去官网下载这个东西,链接:http://pan ...

  6. AOJ 2224 Save your cats (Kruskal)

    题意:给出一个图,去除每条边的花费为边的长度,求用最少的花费去除部分边使得图中无圈. 思路:先将所有的边长加起来,然后减去最大生成树,即得出最小需要破坏的篱笆长度. #include <cstd ...

  7. [ZJOI2012]数列

    超级水的题还wa了一次 首先很容易发现其实就只有两个值并存 然后 要注意把数组初始化啊...可能后面有多余的元素(对拍的时候由于从小到大就没跑出错) #include <bits/stdc++. ...

  8. 日常推荐大神操作,如何再oracle中delete数据后恢复

    http://blog.csdn.net/wangdinghai365/article/details/8593869

  9. [OpenCV-Python] OpenCV 中的图像处理 部分 IV (四)

    部分 IVOpenCV 中的图像处理 OpenCV-Python 中文教程(搬运)目录 21 OpenCV 中的轮廓 21.1 初识轮廓目标 • 理解什么是轮廓 • 学习找轮廓,绘制轮廓等 • 函数: ...

  10. UVA 10815 Andy's First Dictionary【set】

    题目链接:https://vjudge.net/contest/211547#problem/C 题目大意: 输入一个文本,找出所有不同的单词(连续的字母序列),按字典序从小到大输出,单词不区分大小写 ...