0. 介绍
数据库每次启动时,会自动在内存中生成 I_S :用于查询 MySQL 部分元数据信息的视图
视图:相当于 select 语句的别名,不保存数据本身
I_S 视图保存的就是查询元数据的方法
1. I_S.tables
作用:保存了所有表的数据字典信息
use information_schema
desc tables;
-- 常用列介绍:
-- 各个表所在的库
TABLES_SCHEMA
-- 表名
TABLES_NAME
-- 表的引擎
ENGINE
-- 表的数据行(不是特别实时)
TABLES_ROWS
-- 平均行长度
AVG_ROW_LENGTH
-- 表使用的存储空间大小(不是特别实时)
DATA_LENGTH
-- 表的索引占用空间大小
INDEX_LENGTH
-- 表中是否有碎片
DATA_FREE
2. I_S.tables 企业应用案例
-- 数据库资产统计——统计每个库下所有表的个数、表名
mysql> select table_schema,count(table_name) as tables_num,group_concat(table_name) as tables_list
-> from information_schema.tables
-> group by table_schema;
-- 统计每个库的占用空间总大小
-- 一张表的大小 ≈ AVG_ROW_LENGTH * TABLE_ROW + INDEX_LENGTH
-- ≈ DATA_LENGTH
mysql