mysql 数据导入及格式的问题?

saidmu 发布于 2013/08/05 15:19
阅读 792
收藏 0

        今天学习MySQL的时候下载了一个employees_db-full-1.0.6.tar.bz2这个示例数据库,我的系统是Linux,MySQL版本是5.1.69,所以数据库默认存储引擎是MyIsam,但是导入数据库后在数据目录下只有.frm文件,没有.MYD和.MYI文件,我查看了一下表的定义,发现其存储引擎是Innodb,更改存储引擎为Myisam后就出现了MYI和MYD文件。问题是:为什么存储引擎定义为innodb却存储为.frm,它的数据存哪去了?

加载中
0
LianyouCQ
LianyouCQ

mysql的innodb引擎管理数据是黑盒子管理,默认在数据目录(linux:/var/lib/mysql)下有一个ibdata1文件存储数据,ib_logfile0和ib_logfile1文件是日志文件, 而.frm格式存储的是表定义的格式。

这与MyIsam引擎大不相同。

saidmu
saidmu
回复 @Lesus : 非常感谢
LianyouCQ
LianyouCQ
回复 @saidmu : 这要看my.conf设置了,默认是自动扩展autoextend,不会再创建ibdata2了。 如果在my.conf中设置了innodb_data_file_path=ibdata1:10M:ibdata2:20M:autoextend 那么如果ibdata1的10M满了,就会创建ibdata2,如果ibdata2慢了20M,不会再创建了,只会在ibdata2上自动扩展
saidmu
saidmu
谢谢,懂了。也就是说如果 innodb_file_per_table这个变量值为OFF的话所有innodb表的数据都会存入ibdata1里面,那如果ibdata1存满了是不是还会创建ibdata2?
0
红薯
红薯
导入的sql一般不会指定存储引擎吧
saidmu
saidmu
使用mysql -t<a.sql形式导入的
saidmu
saidmu
我用show create table 查看的时候确实是定义了存储引擎的
0
liklk
liklk
你看看DATA目录下是不是有个ib_logfile0这样的文件呀。。你查下Innodb和MyIsam引擎的区别呗。
saidmu
saidmu
有,但是搞不懂为什么innodb的表会存为.frm
返回顶部
顶部