我在WindowsServer2019上运行MySQL 8.0.23。两张表:
CREATE TABLE `tblp` (
`id` int unsigned NOT NULL AUTO_INCREMENT,
`datum` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`id`),
KEY `index_dat` (`datum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;和
CREATE TABLE `tblpdet` (
`id` int unsigned NOT NULL,
`katbr` varchar(45) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`redid` int unsigned NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`redid`),
KEY `Index_2` (`id`),
KEY `idx_katbr` (`katbr`),
CONSTRAINT `FK_tblpdet_1` FOREIGN KEY (`id`) REFERENCES `tblp` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;现在,如果我执行:
select katbr, min(date(datum))
from tblp p
join tblpdet d on p.id = d.id
group by katbr;我搞错了
错误代码: 1114。表“d:\tmp#sql1e5c_18_1eb”已满
如果我执行:
select katbr, min(redid)
from tblpdet
group by katbr;那它就能正常工作。
结果应该返回大约120.000行。
以下是与此问题相关的全球设置:
> innodb_data_file_path=ibdata1:12M:autoextend
> innodb_buffer_pool_size=51539607552表tblp大约有5.800.000行,tblpdet有43.000.000行。MySQL的数据文件夹位于SSD (镜像)驱动器上,有800 of的空闲空间。内存总数为128 20;机器有2个处理器,总共有20个核心,只运行MySQL (目前)。
我所读到的一切都以“磁盘空间不足”或innodg_data_file_path配置错误而告终。有人帮忙吗?
发布于 2021-04-23 17:26:12
第一篇文章,所以要仁慈。
我也有类似的问题(错误代码: 1114 )。表'/tmp/#sql2cc_b_3e‘已满),可以选择和连接具有排序和分组的大型数据集。问题出现在8.0.24,但不存在8.0.22或更早。
我通过导出8.0.24中的数据库(其中我收到了错误)并导入到8.0.20中,成功地运行了相同的查询,从而测试了这一点。然后,我在没有将任何其他设置更改为8.0.24的情况下进行了更新,同样的查询也失败了。我还做了一个8.0.24的新安装,并在那里收到了错误。
https://stackoverflow.com/questions/67176099
复制相似问题