SELECT ip,port,count(*) FROM devops.pvs_sfpshow group by ip,port;
一句简单的分组查询语句,报错了
1114 Error, The table /tmp/#sql~~~ is full
1、首先确定下表的大:2000W行数据,十多个字段
2、加索引后再查询
create index Idx_switchshow on pvs_switchshow (ip,port)
结果仍然报错
3、增加临时表大小:
SET SESSION tmp_table_size=409510241024;
SET SESSION max_heap_table_size=409610241024;
SELECT ip,port,count(*) FROM devops.pvs_sfpshow group by ip,port;
以及在my.cnf中添加
max_heap_table_size = 256M
tmp_table_size = 256M
然后重启,仍然失败
4、检查配置
innodb_data_file_path = ibdata1:1G:autoextend
没有设置max最大限制
5、查看表字段:
都是int或者varchar类型,最大长度不超过50,不存在blob或text类型的字段
6、再次查数据库参数
show variables like ‘%_temp%’;
±----------------------------±----------------------+
| Variable_name | Value |
±----------------------------±----------------------+
| avoid_temporal_upgrade | OFF |
| innodb_temp_data_file_path | ibtmp1:12M:autoextend |
| in

这篇博客记录了处理MySQL8中遇到的错误:The table /tmp/#sql~~~ is full的过程。通过检查表大小、创建索引、调整临时表大小、检查数据库配置和参数,最终通过设置temptable_max_ram和temptable_max_mmap解决了问题。
1万+

被折叠的 条评论
为什么被折叠?



