您的位置 首页 数据库

temp表空间

临时表空间主要用于存储临时表信息,主要是在使用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

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章