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用户界面开发:TabHost

    TabHost是整个Tab的容器,包括两部分,TabWidget和FrameLayout.TabWidget就是每个tab的标签,FrameLayout则是tab内容.TabHost的二种实现方式:第 ...

  2. CopyPropertis

    commons-beanutils.jar PropertyUtils.copyProperties(Object dest, Object orig) spring-beans.jar BeanUt ...

  3. rownum和分析函数 over

    select rownum, t.* from qyuser.tr_apply_info t where rownum < 10; --rownum 对于满足 查询条件的结果,从1 开始,所以大 ...

  4. 【mysql】MySQLdb返回字典方法

    来源:http://blog.csdn.net/zgl_dm/article/details/8710371 默认mysqldb返回的是元组,这样对使用者不太友好,也不利于维护下面是解决方法 impo ...

  5. PHP中的10个实用函数

    1.php_check_syntax 这个函数可以用来检查特定文件中的PHP语法是否正确. <?php $error_message = ""; $filename = &q ...

  6. django----用户认证(auth模块)

    用法 from django.contrib import auth user = authenticate(username='someone',password='somepassword') l ...

  7. hdu5493 树状数组+二分

    数字的字典序,,有点迷,网上看题解也没有明说,总之越大的数字放在后面就行了 利用二分找到前k个空位即可 /* 每个人有一个独特的高度,第i个人高hi,前面有ki个人比他高或后面有ki个人比他高 请求出 ...

  8. 为什么需要注册OCX控件?

    转自:http://searchwindevelopment.techtarget.com/answer/Why-do-I-need-to-register-OCX-controls OCX's ha ...

  9. 高版本js实现live

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. ubuntu16.04下搜狗输入法异常

    问题描述: 搜狗输入法出现异常, 提示: 删除 .config/Sougou-PY 文件后重启 解决方案: google后发现,搜狗拼音输入法使用 fcitx 框架. 发现系统同时安装了ibus框架 ...