mysql innodb临时表btmp1文件太大

某日生产环境(数据库实例)告警,磁盘使用率过高!

检查发现是由于mysql的data目录的ibtmp1文件太大,达到了30GB

一、ibtmp1文件是干嘛的?

就是用来存放临时表查询时的数据。

二、ibtmp1增长的原因是什么?
主要与SQL有关,尤其是大量的分组聚合,排序,join查询SQL.
通常如下情况会造成iptmp1上涨:

查询语句会先查询temp_table_size(内存分配)的量,当临时存储的量超过这个参数限制时,就会在iptmp1中申请占用空间。
select order group by GROUP BY 无索引字段或group by + order by 的子句字段不一样时。
select (select) 子查询
insert into select … from … 表数据复制
select union select 联合语句

注意:临时表释放后,空间会释放,但是磁盘空间不会释放,空闲空间可以被复用。释放磁盘空间只能重启

三、解决办法
1、去检查sql!

通过慢查询日志找到慢sql(包含子查询的sql着重关注),要确保子查询内的结果集不要太大(返回太多行),可以通过子查询的where条件缩减结果集。

或是通过show processlist查询的,如图:

mysql innodb临时表btmp1文件太大

我这里正是因为sql太慢,和子查询的结果集太大,导致了mysql线程卡死。通过优化后,iptmp1文件大小正常了。

2、my.cnf配置临时文件大小限制

[mysqld]
innodb_temp_data_file_path=ibtmp1:12M:autoextend:max:500M

不推荐,因为一旦临时文件增长到500M后, 再进行需要临时表的sql查询(例如子查询),是会报错的!

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/10602

(0)
凯影的头像凯影
上一篇 2023年12月15日 下午3:29
下一篇 2023年12月18日 下午3:06

相关推荐

  • Oracle用户和表被锁定解决方法

    1、用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 2、查看具体的被锁时间 3、解锁 4、查看是那个ip造成的test用户被锁 这样可知是上面10.69.1.11的ip尝试多次失败登陆造成的被锁 注: 一般数据库默认是10次尝试失败后锁住用户 1、查看FAILED_LOGIN_ATTEMPTS的值 2、修改为30次 3、修改为无限次(…

    2024年5月9日
    1.6K00
  • 关于mysql now()显示的时间不正确

    如果MySQL中的NOW()函数返回的时间不正确,可能有以下几个原因: 时区设置不正确。请使用SELECT @@global.time_zone;命令检查MySQL服务器的全局时区设置,并确保它与你所在地区的时区匹配。如果时区设置不正确,请使用SET GLOBAL time_zone = ‘timezone’;命令进行更正。 系统时间…

    2023年8月22日
    1.9K00
  • Centos7.6安装MySQL(超详细)

    1、查看是否已经安装Mysql rpm -qa | grep mysql 我已经安装过了 如果你查看出来有东西,可以使用下面命令将其删除 rpm -e 文件名 如果提示warning: waiting for transaction lock on /var/lib/rpm/.rpm.lock,则需要执行 2、下载官方Mysql包 wget -i -c ht…

    2022年6月9日
    1.7K00
  • 使用数据库工具储存文件报错1558解决方法

    现象:在用navicat连接时发生了一个错误:1558 column count of mysql.proc is wrong.Expected20,found 16.created with mysql 50091,now running 50528.please use mysql_upgrade to fix this error。 分析过程:这个是由…

    2022年12月7日
    1.6K00
  • MySQL服务器开启SSL加密功能

    MySQL服务器开启SSL加密功能 我们知道,MySQL5.7之前版本,安全性做的并不够好,比如安装时生成的root空密码账号、存在任何用户都能连接上的test库等,导致数据库存在较大的安全隐患。好在5.7版本对以上问题进行了一一修复。与此同时,MySQL 5.7版本还提供了更为简单SSL安全访问配置,且默认连接就采用SSL的加密方式,这让数据库的安全性提高…

    2023年12月18日
    1.6K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信