innoDB 存储引擎

Posted 自由港

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了innoDB 存储引擎相关的知识,希望对你有一定的参考价值。

innodb 是在mysql 5.5.8 及之后的版本中成为mysql的默认存储引擎。之前都使用myisam。

 

innodb 是事务型的存储引擎 支持ACID事务,适用于小事务。

 

1.表空间类型

 

使用表空间进行数据存储。

通过参数

innodb_file_per_table 决定

on :独立表空间 :tablename.IBD

image

FRM文件为表结构二进制文件

ibd 为表的数据。

为off时:

系统表空间: ibdataX

image

共享表空间。

image

 

2.系统表空间和独立表空间如何选择

1.系统表空间无法简单的收缩文件大小

  删除数据后空间无法释放,造成空间浪费和碎片。

2.独立表空间可以通过 optimize table 命令 收缩系统文件。

系统表空间会产生IO瓶颈。

独立表空间可以同时向多个文件刷新数据。

 

建议:

对innodb 使用独立表空间。

表转移的步骤:

把原来存在与系统表空间的表转移到独立表空间的方法。

步骤:

1.使用mysqldump 导出所有的数据库表数据。

2.停止mysql服务,修改参数,并删除innodb相关文件。

3.重启mysql服务,重建innodb系统表空间。

4.重新导入数据。

以上是关于innoDB 存储引擎的主要内容,如果未能解决你的问题,请参考以下文章

InnoDB存储引擎概览

MySQL innodb引擎深入讲解

MYSQL存储引擎InnoDB(三十五):临时表空间

InnoDB存储引擎介绍-InnoDB存储引擎结构

innodb 存储引擎为啥要用一个自增的主键

详解MySQL存储引擎Innodb