首页 > 代码库 > innoDB 存储引擎

innoDB 存储引擎

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.重新导入数据。

innoDB 存储引擎