innodb 是在mysql 5.5.8 及之后的版本中成为mysql的默认存储引擎。之前都使用myisam。
innodb 是事务型的存储引擎 支持ACID事务,适用于小事务。
1.表空间类型
使用表空间进行数据存储。
通过参数
innodb_file_per_table 决定
on :独立表空间 :tablename.IBD
FRM文件为表结构二进制文件
ibd 为表的数据。
为off时:
系统表空间: ibdataX
共享表空间。
2.系统表空间和独立表空间如何选择
1.系统表空间无法简单的收缩文件大小
删除数据后空间无法释放,造成空间浪费和碎片。
2.独立表空间可以通过 optimize table 命令 收缩系统文件。
系统表空间会产生IO瓶颈。
独立表空间可以同时向多个文件刷新数据。
建议:
对innodb 使用独立表空间。
表转移的步骤:
把原来存在与系统表空间的表转移到独立表空间的方法。
步骤:
1.使用mysqldump 导出所有的数据库表数据。
2.停止mysql服务,修改参数,并删除innodb相关文件。
3.重启mysql服务,重建innodb系统表空间。
4.重新导入数据。