mysql 数据导入及格式的问题?
今天学习MySQL的时候下载了一个employees_db-full-1.0.6.tar.bz2这个示例数据库,我的系统是Linux,MySQL版本是5.1.69,所以数据库默认存储引擎是MyIsam,但是导入数据库后在数据目录下只有.frm文件,没有.MYD和.MYI文件,我查看了一下表的定义,发现其存储引擎是Innodb,更改存储引擎为Myisam后就出现了MYI和MYD文件。问题是:为什么存储引擎定义为innodb却存储为.frm,它的数据存哪去了?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
有,但是搞不懂为什么innodb的表会存为.frm
你看看DATA目录下是不是有个ib_logfile0这样的文件呀。。你查下Innodb和MyIsam引擎的区别呗。
我用show create table 查看的时候确实是定义了存储引擎的
使用mysql -t<a.sql形式导入的
导入的sql一般不会指定存储引擎吧
谢谢,懂了。也就是说如果 innodb_file_per_table这个变量值为OFF的话所有innodb表的数据都会存入ibdata1里面,那如果ibdata1存满了是不是还会创建ibdata2?
回复
这要看my.conf设置了,默认是自动扩展autoextend,不会再创建ibdata2了。 如果在my.conf中设置了innodb_data_file_path=ibdata1:10M:ibdata2:20M:autoextend 那么如果ibdata1的10M满了,就会创建ibdata2,如果ibdata2慢了20M,不会再创建了,只会在ibdata2上自动扩展
回复
非常感谢
mysql的innodb引擎管理数据是黑盒子管理,默认在数据目录(linux:/var/lib/mysql)下有一个ibdata1文件存储数据,ib_logfile0和ib_logfile1文件是日志文件, 而.frm格式存储的是表定义的格式。
这与MyIsam引擎大不相同。