避免使用 Innodb 主表空间的原因

红薯 发布于 2010/06/11 06:44
阅读 573
收藏 2

当你的 MySQL 使用 innodb_file_per_table 配置参数时(OSChina 数据库使用的是 MyISAM 存储引擎,而非 InnoDB),数据被储存在以数据库名为子目录的对应各个表的文件中,每个表包含三个文件:xxx.frm、xxx.MYD、xxx.MYI。其中 xxx.MYD 存放数据,xxx.MYI 存放索引。但是你会很奇怪,为什么 MySQL 的ibdata1 文件一直在增长呢,这个文件是 MySQL 主表空间。是什么原因导致 ibdata1 文件大小增长呢?

来自 MySQLPerformanceBlog 的文章为你揭开谜底。

该文章指出:很少有事情总是存储在主表空间 - 这是系统表,也被称为数据字典 - 表和索引的定义和相关的东西,双写缓冲区,缓冲区中插入的记录要插入临时存储在索引树和撤消部分持更改的行以前的版本。

加载中
0
sunzhiping_sh
sunzhiping_sh

如果是innodb引擎,并且是独享表空间,那每个表是.frm和.ibd 两个文件。.ibd存放数据,.frm存放表结构;

如果是myisam表,是xxx.frm、xxx.MYD、xxx.MYI。其中 xxx.frm存放表结构,xxx.MYD 存放数据,xxx.MYI 存放索引。

是这样理解吗

返回顶部
顶部