How to improve MySQL join to be more efficient?
我正在尝试将表 df1 与 df2 连接起来。问题是 df2 是一个非常长的表,有 4000 万个观察值,在等待超过 48 小时后,我无法在 MySQL 中获得连接结果。所以想问问有没有什么办法可以提高这个join的效率。我已经在两个表的标记列上添加了索引。
df1 和 df2 具有相同的结构,这里是一个例子:
1 2 3 4 5 6 7 8 9 10 |
两个表都有两列,Id 和 Tag。但是,Id 或 Tag 都不是唯一标识的键。只有 Id Tag 可以是唯一标识的密钥。我需要的是在列标签上省略加入 df1 和 df2。这是我的代码:
1 2 3 4 5 |
我会按此顺序对两个表的 (tag, id) 尝试复合索引。
如果该索引被拾取,请使用执行计划检查。
标签列上的分区表可能会有所帮助,因为分区会在内部创建多个较小的表。
你也应该运行它并检查你的进程卡在哪里
这可能会给你更多的线索。
"inflate-deflate syndrome" 发生在您执行
我对查询应该如何帮助您重写它感到困惑。你能详细说明吗?为什么是
有时解决方法是:
这甚至接近你想要的吗?