当前位置: 首页 > news >正文

MySQL 元数据详细说明

目录

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 精度不同。

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

http://www.dtcms.com/a/323306.html

相关文章:

  • RNN——LSTM(deep-learning)学习
  • Python自动化测试断言详细实战代码
  • BroadcastChannel:轻松实现前端跨页面通信
  • JavaWeb03——javascript基础语法
  • 嵌入式 Linux Mender OTA 实战全指南
  • 国家药品监督管理局医疗器械唯一标识管理信息批量导入mysql工具
  • 算法篇----模拟
  • 企业级高性能web服务器
  • 沿街晾晒识别误检率↓76%:陌讯多模态融合算法实战解析
  • VisionPro常用标定方式
  • 本科毕业论文怎么引用github里面数据集
  • Vue3从入门到精通: 2.2 Vue3组件通信与数据传递深度解析
  • AI热点周报(8.3~8.9):OpenAI重返开源,Anthropic放大招,Claude4.1、GPT5相继发布
  • 心灵笔记:正念冥想
  • imx6ull-驱动开发篇16——信号量与互斥体
  • SpringBoot学习日记 Day6:解锁微服务与高效任务处理
  • .NET程序跨平台ARM电脑上发布的程序格式是,so还是DLL?
  • AWT 基本组件深入浅出:Button/Label/TextField/Checkbox/Choice/List 全面实战与性能优化
  • GPT-4 vs GPT-5 深度分析
  • 逻辑回归详解:原理、应用与实践
  • n沟道增强型mos管
  • 支持 UMD 自定义组件与版本控制:从 Schema 到动态渲染
  • Beelzebub靶机通关教程
  • java 中 @NotBlank 和 @NotNull 的区别
  • 【LLM实战|llamaIndex】llamaIndex介绍和RAG
  • dnSpy:设置断点
  • Docker 容器中运行昇腾(Ascend)AI 环境
  • Vitalik谈以太坊:ETH财库储备策略“有益且有价值”
  • SELinux 入门指南
  • vue+flask大模型写诗诗词推荐与可视化系统