《MySQL系列-InnoDB引擎23》文件-InnoDB存储引擎文件-表空间文件

Posted DATA数据猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《MySQL系列-InnoDB引擎23》文件-InnoDB存储引擎文件-表空间文件相关的知识,希望对你有一定的参考价值。

InnoDB存储引擎文件

  之前介绍的文件都是mysql数据库本身的文件,和存储引擎无关。除了这些文件外,每个表存储引擎都有其自己独有的文件。本节将具体介绍与InnoDB存储引擎密切相关的文件,这些文件包括重做日志文件、表空间文件。

表空间文件

  InnoDB采用将存储的数据按表空间(tablespace)进行存放的设计。在默认配置下会有一个初始大小为10MB,名为idbta1的文件。该文件就是默认的表空间文件(tablespace file),用户可以通过参数innodb_data_file_path对其进行设置,格式如下:

## innodb_data_file_path=datafile_spec1[;datafile_spec2]...
mysql> show variables like 'innodb_data_file_path';
+-----------------------+------------------------+
| Variable_name         | Value                  |
+-----------------------+------------------------+
| innodb_data_file_path | ibdata1:12M:autoextend |
+-----------------------+------------------------+
1 row in set (0.00 sec)

  用户可以通过多个文件组成一个表空间,同时制定文件的属性,如:

[mysqld]

innodb_data_file_path = /db/ibdata1:2000M;/dr2/db/ibdata2:2000M:autoextend

  这里将/db/ibdata1/dr2/db/ibdata2两个文件来组成表空间。若这两个文件位于不同的磁盘上,磁盘的负载可能被平均,因此可以提高数据库的整体性能。同时,两个文件的文件名后面都跟了属性,表示文件ibdata1的大小为2000MB;文件ibdata2的大小为2000MB,如果用完也可以自动增长(autoextend);

  设置innodb_data_file_path参数后,所有基于InnoDB存储引擎的表数据都会记录到该共享表空间中。

mysql> show variables like 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| innodb_file_per_table | ON    |
+-----------------------+-------+
1 row in set (0.00 sec)

  若设置了参数innodb_file_per_table,则用户可以将每个基于InnoDB存储引擎的表产生一个独立表空间。独立表空间命名规则为:表名.idb

# 如下所示,article和c_zxy有独立的表空间。
# 需要注意的是,这些单独表空间文件仅存储该表的数据、索引和插入缓冲bitmap等信息
# 其余信息还是存放在默认表空间中。
mysql> system ls -lh /var/lib/mysql/zxy
total 69M
-rw-r----- 1 mysql mysql 8.6K Oct  8 16:51 article.frm
-rw-r----- 1 mysql mysql  96K Oct  8 16:51 article.ibd
-rw-r----- 1 mysql mysql 8.5K Oct  8 16:51 c_zxy.frm
-rw-r----- 1 mysql mysql  96K Oct  8 16:51 c_zxy.ibd

以上是关于《MySQL系列-InnoDB引擎23》文件-InnoDB存储引擎文件-表空间文件的主要内容,如果未能解决你的问题,请参考以下文章

《MySQL系列-InnoDB引擎27》表-文件格式

《MySQL系列-InnoDB引擎13》文件-参数文件

《MySQL系列-InnoDB引擎13》文件-参数文件

《MySQL系列-InnoDB引擎21》文件-PID文件

《MySQL系列-InnoDB引擎20》文件-套接字文件

《MySQL系列-InnoDB引擎14》文件-日志文件-错误日志