檬味博客
提问
热搜
消息
登录
注册
帮助中心
首 页
问答
圈子
代码
报错
Mysql
Python
Java
檬味博客
»
问答
»
mySQL
»
深入探究mysql中frm文件的作用和原理mysql中frm
深入探究mysql中frm文件的作用和原理mysql中frm
原理 .frm文件的格式是由MySQL自己定义的,包括文件头信息和表结构信息两部分。文件头信息:主要包括了文件格式版本号、MySQL版本号、表名称长度、列数、表行数等信息。表结构信息:主要包括了列名、列数据类型、列长度、列约束(如PRIMARY KEY、FOREIGN KEY、UNIQUE)、默认值等信息,以及表的特殊属性(...
深入探究mysql中frm文件的作用和原理mysql中frm
深入探究MySQL中.frm文件的作用和原理
当我们在MySQL中创建表的时候,系统不仅会在数据库中创建对应的表结构,还会在磁盘上生成一个.frm文件。这个文件承载着表结构的定义信息,起到了非常重要的作用。下面我们就来深入探究MySQL中.frm文件的作用和原理。
作用
.frm文件是存储MySQL表结构定义信息的文件,包括表的名称、列名、数据类型、默认值、约束等等。当我们执行SELECT、INSERT、UPDATE、DELETE等操作时,MySQL会根据.frm文件中的定义信息进行验证和转换,从而确保数据的正确性和完整性。
此外,MySQL还利用.frm文件来实现表结构的缓存。当我们执行SELECT语句时,MySQL会先在内存中查找已经被缓存的表结构信息,如果找到就直接使用,如果没有找到则需要在磁盘中读取对应的.frm文件进行解析,然后缓存起来,以便以后使用。
原理
.frm文件的格式是由MySQL自己定义的,包括文件头信息和表结构信息两部分。
文件头信息:主要包括了文件格式版本号、MySQL版本号、表名称长度、列数、表行数等信息。
表结构信息:主要包括了列名、列数据类型、列长度、列约束(如PRIMARY KEY、FOREIGN KEY、UNIQUE)、默认值等信息,以及表的特殊属性(如表引擎、字符集等)。
.frm文件是按照二进制格式存储的,它的具体结构是:

在MySQL数据库实例启动时,会加载数据字典和缓存,其中缓存采用的是LRU算法,缓存的大小可以调整。LRU缓存中的表结构信息包括了.frm文件的元数据,这些元数据构成了MySQL数据字典,可以通过SHOW TABLES、DESC、SHOW FULL COLUMNS等命令对其进行查询。
由于每张表都对应了自己的.frm文件,因此如果我们需要移动表结构信息,例如把表从一个MySQL实例迁移到另一个实例,就需要同时将对应的.frm文件移动过去,并在新的实例中重新加载。
总结
.frm文件是MySQL存储表结构信息的关键文件,它不仅仅是MySQL中数据的组织方式,而且还是MySQL中缓存机制的载体之一。在MySQL中,我们可以通过SHOW TABLES、DESC、SHOW FULL COLUMNS等命令查询.frm文件中存储的表结构信息。如果需要迁移表结构和数据,必须要同时迁移表对应的.frm文件,否则无法恢复表结构信息。2024-08-12
mengvlog
阅读 85 次
更新于 2025-12-14 10:43:02
我来答
关注问题
0
1 个回答
檬味博客专题活动
其他mySQL类似问题
深入探究MySQL中的元数据到底是什么mysql中元数据
472次阅读
MySQL轻松安装一键操作mysql一键安装sh
210次阅读
如何搭建php+mysql环境
91次阅读
外网访问内网mysql数据库方法
110次阅读
怎么设置才能让外网ip可以访问mysql数据库
481次阅读
如何使用MySQL通过路由访问数据库mysqlroute
69次阅读
檬味博客在线解答
立即免费咨询
mySQL相关话题
1064mysql
有用 (78)
mysqlxml
有用 (88)
MySQLFront
有用 (84)
mysqls
有用 (86)
mysql表同步
有用 (88)
mysql或
有用 (85)
mysql备注
有用 (80)
mysql字符编码
有用 (71)
mysql数据库语言
有用 (68)
mysql编译安装
有用 (76)
返回顶部