教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 MySQL单独存放表空间Innodb_file_per_table参数详解

MySQL单独存放表空间Innodb_file_per_table参数详解

发布时间:2017-03-06   编辑:jiaochengji.com
教程集为您提供MySQL单独存放表空间Innodb,file,per,table参数详解等资源,欢迎您收藏本站,我们将为您提供最新的MySQL单独存放表空间Innodb,file,per,table参数详解资源
在mysql中Innodb_file_per_table参数的作用是什么呢,其实许多的朋友是不知道的,今天我们来看这篇MySQL单独存放表空间Innodb_file_per_table参数详解之后你就懂了哦。

MySQL可使用多种引擎,当我们选择使用InnoDB引擎的时候,ibdata1这个文件会随着时间的推移变得越来越大,占据大量的磁盘空间。

那么,ibdata1里保存了哪些东西,为什么会变得越来越大呢?首先我们确认一下ibdata1的结构,ibdata1是InnoDB的共有表空间,默认配置是把全部表空间存放到ibdata1中,因此而造成ibdata1文件无限增长需释放之说。

MySQL的Innodb_file_per_table参数控制表空间存放方式,通过配置Innodb_file_per_table参数可把全部表空间存放到ibdata1的方式改为使用独享表空间将表空间分别单独存放。

下面介绍一下具体的操作。

1) 导出数据库中所有数据

# mysqldump -u root -p --all-database > /tmp/all-database.dump

2) 删除数据库中数据

# mysql -u root -p
mysql> drop database dbname;
3) 停止MySQL

# service mysqld stop

4) 删除ibdata1文件

# mv /var/lib/mysql/ibdata1 /tmp
# mv /var/lib/mysql/ib_logfile0 /tmp
# mv /var/lib/mysql/ib_logfile1 /tmp
5) 配置innodb_file_per_table

# vi /etc/my.cnf
innodb_data_home_dir = /var/lib/mysql
innodb_data_file_path = ibdata1:1G;ibdata2:200M:autoextend
innodb_file_per_table

开启独享表空间,并指定ibdata1大小为1G,ibdata2大小200M,自动扩张。

6) 启动MySQL


# service mysqld start

7) 导入数据

把刚才导出来的数据库,导入至数据库。

# mysql -u root -p < /tmp/all-database.dump

开启独享表空间后,并不是说就不需要ibdata1了,因为在ibdata1中还保存着下面这些数据。

InnoDB表的元数据
Buffer
UNDO日志

您可能感兴趣的文章:
MySQL单独存放表空间Innodb_file_per_table参数详解
mysql innodb优化配置方法分享
mysql innodb数据库引擎解析
mysql数据库性能优化 mysql配置文件my.cnf详解
mysql性能优化 my.cnf配置文件详解
紧急修改表存储引擎:MyISAM 为 InnoDB步骤详解
CentOS 6.5编译安装Percona 5.6.15(步骤)
MySQL临时表的简单用法详解
解决MySQL数据库目录ibdata1文件占用空间大问题
MySQL常见错误代码解析

[关闭]
~ ~