MySQL 8错误日志出现"The table /home/work/mysql_3306/tmp/#sqla2b_298b06_4d is fu11!"
##############
了解MySQL 8.0.26的错误日志出现"The table /home/work/mysql_3306/tmp/#sqla2b_298b06_4d is fu11!"的bug,暂时通过修改临时表的存储引擎为内存引擎解决
MySQL8.0.13 开始引入新的临时内存表引擎 TempTable,并将其作为内存中创建临时表的默认存储引擎。
TempTable引擎大小由参数temptable_max_ram、temptable_max_mmap控制,该两个参数默认值为 1G。
当查询语句使用内存临时表分配空间超过 temptable 引擎的限制时(temptable_max ram+temptable),temptatable 引擎由于内部逻辑处理有问题,直接返回 tableisfull 错误,导致查询语句执行失败。
如果临时表存储引擎为 memory,会将超过分配空间的内存临时表置换为磁盘临时表,保证查询语句正常运行,建议将内存临时表
解决方案:
1.更改临时表存储引擎;
2.升级到MySQL 8.0.27
############
igoodful@qq.com