在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日志

最新文章

  1. .net erp(办公oa)开发平台架构概要说明之表单设计器
  2. asp.net core 如何在Controller获取配置文件的值
  3. JavaScript方法——call和apply
  4. python netwokx环境搭建
  5. AFNetWorking支持解析html的方法
  6. Jmeter进行数据库压测
  7. erlang r19里面的mnesia_ext
  8. POJ 3170 Knights of Ni (暴力,双向BFS)
  9. JQuery ajax请求一直返回Error(parsererror)
  10. hibernate--could not initialize proxy - no Session--懒加载问题
  11. Responsive Design in 3 Steps
  12. swiper.js 碰到的坑
  13. SSE图像算法优化系列十八:三次卷积插值的进一步SSE优化。
  14. MyCat安装配置
  15. 基于Redis分布式锁(获取锁及解锁)
  16. uart boot log
  17. webpack快速入门——插件配置:HTML文件的发布
  18. 对《SQL Server中tempdb的management》的一些更正和补充
  19. 587. Erect the Fence(凸包算法)
  20. JRE,JVM,JDK

热门文章

  1. mysql left join中where和on条件的区别
  2. JavaScript 数据类型小结
  3. Centos6优化系统服务脚本
  4. Mysql CASE WHEN 用法
  5. hbase(二)hfile结构
  6. JAVA 单向链表
  7. Pandas 的使用
  8. eclipse创建文件package,source folder和folder区别及相互转换
  9. UIAutomation学习入门
  10. Java管理扩展指南之JMX技术总览