MySQL 元数据详细说明

发布于:2025-08-10 ⋅ 阅读:(25) ⋅ 点赞:(0)

目录

MySQL 元数据详细说明

1. 数据库级元数据

2. 表级元数据

3. 列级元数据

4. 索引元数据

5. 权限元数据

6. 其他关键元数据表

元数据访问方式

注意事项


MySQL 元数据详细说明

MySQL 元数据是描述数据库结构和属性的信息,包括数据库、表、列、索引等对象的定义和状态。以下是核心元数据类型及其详细说明:


1. 数据库级元数据

描述数据库本身的属性:

  • SCHEMATA
    存储所有数据库信息,关键字段:
    • CATALOG_NAME:目录名(通常为 def
    • SCHEMA_NAME:数据库名称
    • DEFAULT_CHARACTER_SET_NAME:默认字符集
    • DEFAULT_COLLATION_NAME:默认排序规则
  • 查询示例
    SELECT * FROM INFORMATION_SCHEMA.SCHEMATA 
    WHERE SCHEMA_NAME = 'your_database';
    


2. 表级元数据

描述表的定义和属性:

  • TABLES
    关键字段:
    • TABLE_SCHEMA:所属数据库
    • TABLE_NAME:表名
    • TABLE_TYPE:表类型(BASE TABLE/VIEW
    • ENGINE:存储引擎(如 InnoDB)
    • ROW_FORMAT:行格式(如 Dynamic)
    • TABLE_ROWS:预估行数
    • AVG_ROW_LENGTH:平均行长度(字节)
  • 统计公式
    表大小估算:
    $$ \text{表大小} \approx \text{TABLE_ROWS} \times \text{AVG_ROW_LENGTH} $$
  • 查询示例
    SELECT TABLE_NAME, ENGINE, TABLE_ROWS 
    FROM INFORMATION_SCHEMA.TABLES 
    WHERE TABLE_SCHEMA = 'your_database';
    


3. 列级元数据

描述表中列的详细定义:

  • COLUMNS
    关键字段:
    • COLUMN_NAME:列名
    • DATA_TYPE:数据类型(如 int, varchar
    • CHARACTER_MAXIMUM_LENGTH:字符类型最大长度
    • IS_NULLABLE:是否允许 NULL
    • COLUMN_DEFAULT:默认值
    • COLUMN_KEY:是否为主键/索引(PRI/UNI
  • 查询示例
    SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE 
    FROM INFORMATION_SCHEMA.COLUMNS 
    WHERE TABLE_NAME = 'your_table';
    


4. 索引元数据

描述表的索引信息:

  • STATISTICS
    关键字段:
    • INDEX_NAME:索引名称
    • NON_UNIQUE:是否唯一索引(0=唯一)
    • SEQ_IN_INDEX:索引中列的顺序
    • CARDINALITY:索引唯一值数量(用于查询优化)
  • 索引效率公式
    选择性计算公式:
    $$ \text{选择性} = \frac{\text{CARDINALITY}}{\text{TABLE_ROWS}} $$
  • 查询示例
    SELECT INDEX_NAME, COLUMN_NAME, CARDINALITY 
    FROM INFORMATION_SCHEMA.STATISTICS 
    WHERE TABLE_NAME = 'your_table';
    


5. 权限元数据

描述用户权限信息:

  • USER_PRIVILEGES
    存储全局权限,关键字段:
    • GRANTEE:被授权用户(格式 'user'@'host'
    • PRIVILEGE_TYPE:权限类型(如 SELECT, UPDATE
  • SCHEMA_PRIVILEGES
    存储数据库级权限。
  • 查询示例
    SELECT * FROM INFORMATION_SCHEMA.USER_PRIVILEGES 
    WHERE GRANTEE LIKE 'your_user%';
    


6. 其他关键元数据表
  • ROUTINES:存储过程和函数定义。
  • TRIGGERS:触发器信息。
  • KEY_COLUMN_USAGE:外键约束关系。

元数据访问方式

所有元数据通过 INFORMATION_SCHEMA 数据库 访问,这是符合 SQL 标准的只读虚拟数据库。例如:

-- 查看所有元数据表列表
SHOW TABLES IN INFORMATION_SCHEMA;

-- 查看表结构定义
SHOW CREATE TABLE your_table;


注意事项

  1. 权限要求:用户需具有 SELECT 权限才能访问 INFORMATION_SCHEMA
  2. 动态更新:元数据实时更新,但部分统计字段(如 TABLE_ROWS)可能为估算值。
  3. 性能影响:频繁查询元数据可能影响性能,建议缓存结果。
  4. 存储引擎差异:如 MyISAMInnoDBTABLE_ROWS 精度不同。

通过元数据,开发者可动态分析数据库结构、优化查询或构建自动化管理工具。


网站公告

今日签到

点亮在社区的每一天
去签到