临时表空间主要用于存储临时表信息,主要是在使用group by,order by,having,unique all,子查询等情况都会使用临时表;
临时表空间管理:
-
扩容临时表空间操作:
扩容前临时表空间信息查看:
mysql> select @@innodb_temp_data_file_path;
+--------------------------------------------+
| @@innodb_temp_data_file_path |
+--------------------------------------------+
| ibtmp1:12M:autoextend |
+--------------------------------------------+
1 row in set (0.00 sec)
mysql> select @@innodb_autoextend_increment;
+---------------------------------------------+
| @@innodb_autoextend_increment |
+---------------------------------------------+
| 64 |
+---------------------------------------------+
1 row in set (0.00 sec)
-- 查看参数信息说明:ibtmp1文件,默认初始大小12M,不够用会自动扩展,默认每次扩展64M
临时表空间的扩容操作方法:
# 编写数据库配置文件信息
vim /etc/my.cnf
[mysqld]
innodb_temp_data_file_path=ibtmp1:12M;ibtmp2:120M:autoextend:max:500M
-- 需要注意的是ibdata1文件大小必须和实际数据库要存储的数据相匹配,否则会出现如下报错信息
# 查看配置信息是否生效
mysql> select @@innodb_temp_data_file_path;
+---------------------------------------------------------------------+
| @@innodb_temp_data_file_path |
+---------------------------------------------------------------------+
| ibtmp1:12M;ibtmp2:120M:autoextend:max:500M |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)
说明:建议数据初始化之前设定好临时表空间,建议2~3个,大小512M~1G;
数据库初始化时设置临时表空间容量建议:
临时表空间的初始设置方法:
# 模拟初始化清理数据
[root@baimeidashu-01 ~]# /etc/init.d/mysqld stop
[root@baimeidashu-01 ~]# rm -rf /data/3306/data/*
# 模拟初始化配置文件
[root@baimeidashu-01 ~]# vim /etc/my.cnf
[mysqld]
innodb_temp_data_file_path=ibtmp1:12M;ibtmp2:120M:autoextend:max:500M
# 模拟初始化操作命令
[root@baimeidashu-01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data
# 模拟初始化重启服务
[root@baimeidashu-01 ~]# /etc/init.d/mysqld start
欢迎来撩 : 汇总all