MySQL数据字典是集中存储元数据的系统级机制,8.0起以InnoDB表形式存于mysql库(如mysql.columns),并通过INFORMATION_SCHEMA提供只读视图;它支撑DDL原子性、查询优化、权限校验等核心功能。
MySQL中的数据字典,是数据库内部用来统一存储和管理所有元数据(metadata)的核心机制。它不是某张具体业务表,而是系统级的“数据库说明书”——记录了数据库里有哪些库、哪些表、每个表有多少字段、字段类型是什么、有没有索引、主键怎么定义、权限如何分配等全部结构信息。
MySQL 8.0起,数据字典完全事务化、集中化,所有元数据都以InnoDB表形式固化在mysql系统库中(如mysql.columns、mysql.tables、mysql.indexes),不再依赖.frm文件或分散的磁盘元数据。这些表本身不可直接增删改,但可通过标准SQL查询。
同时,INFORMATION_SCHEMA库仍提供只读视图接口(如TABLES、COLUMNS、STATISTICS),是日常查结构最常用的入口。
它覆盖数据库对象全生命周期的描述信息,主要包括:
MySQL服务启动时,必须先加载数据字典到内存,才能识别和打开任何用户表。没有它,服务器连“这张表是否存在”都无法判断。它还支撑着:
ALTER TABLE失败可回滚)mysqldump靠它枚举表)mysql.user和mysql.db)日常开发运维中,常用以下方式获取结构信息:
DESCRIBE table_name; 或 SHOW COLUMNS FROM db.table;
SELECT table_name, table_comment FROM informa
tion_schema.tables WHERE table_schema = 'your_db';
SELECT * FROM information_schema.columns WHERE table_schema='db' AND table_name='t' AND column_name='c';
SHOW INDEX FROM your_table; 或查information_schema.statistics