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