Anto Asked: 2012-08-22 03:24:51 +0800 CST2012-08-22 03:24:51 +0800 CST 2012-08-22 03:24:51 +0800 CST innodb中的数据存储 772 我是 mysql 管理的新手,我开始了解 myisam 中的数据存储是通过.frm,.myd和.myi. 我找不到 InnoDB 中的数据存储机制,而不是它在表空间中的存储。 谁能帮我梳理一下innodb存储机的存储机制? mysql innodb 1 个回答 Voted Best Answer Mahesh Patil 2012-08-22T04:08:16+08:002012-08-22T04:08:16+08:00 包含表结构描述的表格式文件(.frm 文件)。每个表都有自己的 .frm 文件,位于相应的数据库目录中。无论哪个存储引擎管理表都是如此。 InnoDB 存储引擎有自己的表空间和日志文件。表空间包含所有 InnoDB 表的数据和索引信息,以及必须回滚事务时所需的撤消日志。日志文件记录有关已提交事务的信息,用于确保不会发生数据丢失。默认情况下,表空间和日志文件位于数据目录中。默认表空间文件名为 ibdata1,默认日志文件名为 ib_logfile0 和 ib_logfile1。(也可以将 InnoDB 配置为每个表使用一个表空间文件。在这种情况下,InnoDB 会在表的数据库目录中为给定的表创建表空间文件。) 每个 InnoDB 表在磁盘上由数据库目录中的 .frm 格式文件表示,以及 InnoDB 表空间中的数据和索引存储。InnoDB 表空间是一个逻辑上的单一存储区域,由磁盘上的一个或多个文件或分区组成。默认情况下,InnoDB 使用由所有 InnoDB 表共享的单个表空间。表空间以与机器无关的格式存储。它的实现使得表大小可以超过文件系统允许的最大文件大小。也可以配置 InnoDB 来创建每个表都有自己的表空间。 MySQL 使用三个文件表示每个 MyISAM 表:一个存储表结构定义的格式文件,一个存储表行内容的数据文件,以及一个存储表上任何索引的索引文件。这些文件通过后缀相互区分。例如,名为 mytable 的表的格式、数据和索引文件称为 mytable.frm、mytable.MYD 和 mytable.MYI。
1 个回答