记录:mysql中ibtmp1文件过大原因及解决

当发现服务器磁盘空间被MySQL的ibtmp1文件占满时,这通常是由于大量使用临时表导致的。ibtmp1是innodb临时表的独立表空间,其大小可以无限增长。解决方法包括定期重启MySQL以清理临时表,或者在my.cnf配置文件中设定ibtmp1文件的最大阈值,如设置为100G,以便在达到上限时触发SQL优化。通过这种方式,可以识别并优化低效的SQL查询。
摘要由CSDN通过智能技术生成

记录:突然发现服务器的磁盘空间占用95%,排查后发现 mysql中的 ibtmp1 文件就有35个G

原因

ibtmp1是非压缩的innodb临时表的独立表空间,通过innodb_temp_data_file_path参数指定文件的路径,文件名和大小,默认配置为ibtmp1:12M:autoextend,也就是说在默认情况下支持大文件的系统这个文件大小是可以无限增长的
总之:用到临时表比较多,sql 写的比较差
1.用到临时表
2.GROUP BY无索引字段或GROUP BY + ORDER BY的子句字段不一样时。
3.order by与distinct共用,其中distinct与order by里的字段不一致(主键字段除外)。
4.insert into table1 select xxx from table2。

解决

  1. 如果不嫌麻烦的话,重启 mysql 就会释放临时表,即:这个文件将会被清理到几kb
  2. 推荐:设置上限,当到达上限后就可以分析出哪些sql比较差,从而进行sql优化
    my.cnf:设置上限阈值
    innodb_temp_data_file_path = ibtmp1:12M:autoextend:max:100G
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值