MySQL社区

标题: mysql独享表空间配置问题 [打印本页]

作者: 冬冬@工作中    时间: 2013-3-4 12:48
标题: mysql独享表空间配置问题
我在my.cnf中配置了mysql存储数据的方式为独享表空间,如下:
[my.cnf]
innodb_file_per_table
但是启动mysql服务时,会在数据文件目录发现有ibdata1(这是共享表空间的数据文件,my.cnf中没配置)出现,大小为18M。

之后我导入数据至mysql,发现ibdata1文件大小没变,但是最近修改时间一直在改变。奇怪,求专家解答,谢谢!

作者: kider    时间: 2013-3-5 17:50
这个文件是必须有的,设置为独立表空间后,导入数据会到这个表的文件中。
作者: 冬冬@工作中    时间: 2013-3-7 12:46
kider 发表于 2013-3-5 17:50
这个文件是必须有的,设置为独立表空间后,导入数据会到这个表的文件中。

什么意思?求大神细讲。如果是独享表空间,数据是和表结构放在一个目录的,文件是以.ibd文件存储的。

作者: kider    时间: 2013-3-8 10:11
不好意思没说清楚,应该是:这个文件是必须有的,设置为独立表空间后,导入数据会到各个表的文件中,但表结构等一些信息会到ibdata文件中。

具体:
此时,InnoDB存储每个新创建的表到表格所属于的数据库目录下它自己的文件tbl_name.ibd里。数据和索引被一起存到.ibd文件。tbl_name.frm文件照旧依然被创建。
InnoDB总是需要共享标空间。.ibd文件对InnoDB不足以去运行,共享表空间包含熟悉的ibdata文件,InnoDB把内部数据词典和未作日志放在这个文件中。
注释:你不能像对MyISAM一样,在数据目录之间随意地移动.ibd文件。这是因为表定义被存在InnoDB共享表空间内,而且InnoDB必须保持事务ID和日志顺序号的一致性。

作者: 冬冬@工作中    时间: 2013-3-8 17:05
kider 发表于 2013-3-8 10:11
不好意思没说清楚,应该是:这个文件是必须有的,设置为独立表空间后,导入数据会到各个表的文件中,但表结 ...

{:soso_e179:}你太厉害了,膜拜!!




欢迎光临 MySQL社区 (http://www.mysqlpub.com/) Powered by Discuz! X3.2