myisam 表文件
1、frm 表结构
2、myd 表数据
3、myi 表索引
InnoDb 表文件
1、fem 表结构
2、idb 表的一部分数据和索引
3、ibdata1(公共区文件 存储所有InnoDB表的一部分数据)
InnoDB数据.frm存储的表结构 .idb存储表的一部分数据和索引 还有一部分数据存储在外部的公共区(ibdata1)(公共区存储所有InnoDB表的一部分数据)
InnoDB数据库删除的数据,文件不会减小(InnoDB没有垃圾数据回收机制) Myisam不会有这样的问题
优化表空间(会优化.idb文件的大小(会将数据库删除的数据但是文件中没有删除的信息删除掉),但是公共区的文件不会删除(无法回收空间)):
MyIsam:optimize table 表名
InnoDB:alter table 表名 engine=InnoDB
处理InnoDB垃圾数据不回收的方式:备份所有的数据库,然后将ibdata1文件删除,然后重启mysql(重启后会重新生成ibdata1文件),然后在将数据库导入,会极大的缩小ibdata1文件的大小,