MySQL 5.7引入了一个新文件 ibtmp1 ,用于在InnoDB中存储临时数据以提高性能。
但我注意到它的大小不断增加。在我的数据库服务器上,它的大小增加到92GB。
有没有办法缩小尺寸或删除文件而无需重新启动服务器?
由于
答案 0 :(得分:19)
创建的 ibtmp1 无法在不重启mysql服务的情况下通过任何方法收缩。
有两种方法可以处理它:
预防措施:在服务器启动时,您应该将此文件的大小限制为:
innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:5G
其中max 5G表示此文件大小限制为5GB。
治愈:如果已创建文件,则需要重新启动服务:
SET GLOBAL innodb_fast_shutdown = 0;
Shutdown MySQL
remove ibtmp1
start MySQL.
答案 1 :(得分:2)
在mysql 5.7及更高版本中,要回收ibtmp1文件使用的空间,您要做的就是重新启动服务。
您不必不必设置 GLOBAL innodb_fast_shutdown = 0; 或手动删除文件。