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

desc tables;

查询所有的数据库信息
select distinct TABLE_SCHEMA from tables ;

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

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

数据表大小以及索引大小
示例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_%';

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

判断myisam数据表是否已压缩
select distinct row_format,engine from information_schema.tables where engine='myisam';

- Fixed: 表示已压缩;
- Dynamic:表示未压缩;
select row_format,engine,table_name from information_schema.tables where engine='myisam';

通过Linux指令直接获取数据库和数据表信息:
mysql -uroot -pxxxx -D:表示数据库名称
;
-e:表示需要执行的指令:
;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?