您的位置:首页 > 数据库 > MySQL

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

2016-12-14 11:36 671 查看


概述

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

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

information_schema.tables信息;

use information_schema;

show create table tables;

[/code]


desc tables;

[/code]


查询所有的数据库信息

select distinct TABLE_SCHEMA from tables ;

[/code]


查询数据库和数据表信息

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

show tables;

[/code]


通过information_schema.table获取数据库和数据表信息:
use information_schema;

select TABLE_SCHEMA ,table_name from tables where table_schema like 'mysql';

[/code]


数据表大小以及索引大小

示例1:mysql.time_zone相关表


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

[/code]


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

[/code]


判断myisam数据表是否已压缩

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

[/code]


Fixed: 表示已压缩;

Dynamic:表示未压缩;

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

[/code]

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

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

[/code]


参数说明:


-D:表示数据库名称



-e:表示需要执行的指令:



来自为知笔记(Wiz)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐