卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章69495本站已运行4221

宝塔怎么限制mysql临时表ibtmp1文件大小

今天服务器突然nginx挂了,进宝塔发现磁盘饱满了,刚前两天清理了,查看了日志没有大的日志,最后发现是mysql的临时表ibtmp1把服务器撑爆了!
尽然已经找到了问题,那么宝塔要怎么解决这个mysql的临时表ibtmp1服务器撑爆问题呢?
1:最轻松方法:
重启mysql就可以释放临时表,也就释放了磁盘!但是这个不是终极解决方法,因为过两天他又饱满了!
2:设置MySQL临时表大小:
进宝塔软件商店,打开mysql设置,点击配置修改,在里面添加
#为了避免以后再次出现ibtmp1文件暴涨,限制其大小
innodb_temp_data_file_path=ibtmp1:12M:autoextend:max:5G
然后重启mysql,就可以了!
如果不放心,可以进宝塔的终端,进命令行输入 mysql -uroot -p数据库密码 ,然后 show variables like 'innodb_temp_data_file_path'; 回车
就可以看到了。

3:优化SQL,避免使用临时表。

ibtmp1增长的原因
ibtmp1增长主要与SQL有关,尤其是大量的分组聚合,排序,join查询SQL.通常如下情况会造成iptmp1上涨:
1.查询语句会先查询temp_table_size(内存分配)的量,当临时存储的量超过这个参数限制时,就会在iptmp1中申请占用空间。
2.select order group by GROUP BY 无索引字段或group by + order by 的子句字段不一样时。
3.select (select) 子查询
4.insert into select ... from ... 表数据复制
5.select union select 联合语句
卓越飞翔博客
上一篇: php可以投递哪些开发岗位
下一篇: 返回列表

相关推荐

留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏