在数据库中存储数据的基本逻辑单元是表,我们通常可以往表中插入数据,修改数据,删除数据和查询数据。一张表中包含了数据字典,数据行记录,索引,数据库状态,权限,日志等信息。
相关概念
information_schema
,mysql
,performance_schema
,sys
mysql
数据库中,比如: columns_priv
, db
, tables_priv
, user
等等都是跟权限有关的表除了数据行记录和索引外,其他的都可以理解为和元数据相关的信息,当我们使用SHOW DATABASES;
语句查看现有的数据库信息时,会发现有information_schema
这样的一个数据库, 每次数据库启动,会自动在内存中生成information_schema
数据库,该数据库用于存储查询数据库的元数据信息的视图。
元数据查询视图
所谓的元数据查询视图,就可以理解为SELECT语句的执行方法,不保存数据本身。 在information_schema
数据库的tables
表中,保存了查询元数据表的视图表,其表结构如下所示:
序号 | 字段信息 | 解释说明 |
---|---|---|
01 | TABLE_SCHEMA | 表示数据表所属库的名称信息 |
02 | TABLE_NAME | 表示数据库中所有数据表名称 |
03 | ENGINE | 表示数据库服务中的引擎信息 |
04 | TABLE_ROWS | 表示数据库相应数据表的行数 |
05 | AVG_ROW_LENGTH | 表示数据表中每行的平均长度 |
06 | INDEX_LENGTH | 表示数据表中索引信息的长度 |
07 | DATA_FREE | 表示数据库服务碎片数量信息 |
08 | CREATE_TIME | 表示数据表创建的时间戳信息 |
09 | UPDATE_TIME | 表示数据表修改的时间戳信息 |
10 | TABLE_COMMENT | 表示数据表对应所有注释信息 |
通过视图查询
1 | # 切换进入information_schema数据库中查看表信息,此时看到的所有表信息,其实都是视图信息 |
通过
show
命令查询
使用show命令虽然可以快速得到相应的数据库元数据信息,但是查询功能过于单一,想查询全面信息,就需要执行多条语句
1 | # 常用SQL语句的show命令查看元数据信息 |