【mysql元数据库】使用information_schema.tables查询数据库和数据表信息



概述

对于mysql和Infobright等数据库,information_schema数据库中的表都是只读的,不能进行更新、删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没有关联的文件。
information_schema.tables存储了数据表的元数据信息,下面对常用的字段进行介绍:
  • table_schema: 记录数据库名
  • table_name: 记录数据表名
  • engine : 存储引擎
  • table_rows: 关于表的粗略行估计;
  • data_length : 记录表的大小(单位字节);
  • index_length : 记录表的索引的大小
  • row_format: 可以查看数据表是否压缩过;

下面介绍几种常见的用法;

information_schema.tables信息;

 
    
  1. use information_schema;
  2. show create table tables;

 
    
  1. desc tables;


查询所有的数据库信息

 
    
  1. select distinct TABLE_SCHEMA from tables ;


查询数据库和数据表信息

显示mysql数据库下面的所有表信息:(共对比使用)
 
    
  1. use mysql;
  2. show tables;

通过information_schema.table获取数据库和数据表信息:
 
    
  1. use information_schema;
  2. select TABLE_SCHEMA ,table_name from tables where table_schema like 'mysql';


数据表大小以及索引大小

示例1:mysql.time_zone相关表

获取time_zone相关表的大小:
 
    
  1. select (sum(DATA_LENGTH) + sum(INDEX_LENGTH)) as size from tables where table_schema='mysql' and table_name like 'time_%';


示例2: 获取指定数据库的大小;
 
    
  1. select (sum(DATA_LENGTH) + sum(INDEX_LENGTH)) as size from tables where table_schema='mysql';


判断myisam数据表是否已压缩

 
     
  1. select distinct row_format,engine from information_schema.tables where engine='myisam';

  • Fixed: 表示已压缩;
  • Dynamic:表示未压缩;

 
    
  1. select row_format,engine,table_name from information_schema.tables where engine='myisam';

通过Linux指令直接获取数据库和数据表信息:

 
    
  1. mysql -uroot -pxxxx -D information_schema -e "select TABLE_SCHEMA ,table_name from tables where table_schema like 'hsm_syslog_%'"

参数说明:

  • -D:表示数据库名称 
  • -e:表示需要执行的指令:































  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值