union - 在 RDS Aurora 上失败的两个大表的联合
问题描述
我有以下查询
select count(*) from
(
SELECT
*
FROM
table_1
UNION
SELECT
*
FROM
table_2
) AS REPORT
表 table_1 和 table_2 有
- 每列 65 列(1 个日期、30 个 varchar 和 33 个 int 以及 1 个 auto_increment 主键)
- 每个约 2 GB 数据
- 每行约 200 万行
我正在将服务器从 RDS MySQL 迁移到 RDS Aurora。此查询在 RDS MySQL 实例上运行良好。
但是当我在比 MySQL 实例更大的 Aurora 实例上运行它时 - Aurora 实例空间不足,顺便说一下,它有 70GB 的可用空间。最终查询失败,给出如下错误,我理解是因为没有可用磁盘空间
Incorrect key file for table '/rdsdbdata/tmp/#sql_14be_0.MYI'; try to repair it
我无法理解的是为什么查询会占用 70+ GB 的空间来存储联合中几乎没有 4GB 的数据。
有人对我做错了什么以及如何纠正有任何建议吗?
解决方案
推荐阅读
- c# - 不支持的表达式错误:在 Visual Studio 中运行测试时 m => m
- mysql - MySQL 触发器:使用内部联接更新
- c++ - 免费发行后的C++20协程使用
- file - 有没有办法在 Nao Roboter (Python SDK) 上导入行为
- python - 获取一年中一个月的第 n 个日期
- clojure - 如何使用 lein mies 开始 clojurescript repl?
- java - 使用2个api请求并在一个recyclerview中显示数据
- docker - Heroku 上的 Bitnami-docker-keycloak:Web 进程无法绑定到 $PORT(错误 R10)
- python - 如何在同步代码的龙卷风中使用 Process Pool Executor?
- python-3.x - 通过基于条件生成可能的组合将数据帧拆分为多个数据帧