gpt4 book ai didi

mysql - 从内连接创建表非常慢

转载 作者:太空宇宙 更新时间:2023-11-04 04:22:03 24 4
gpt4 key购买 nike

我有一个声明如下

CREATE TABLE INPUT_OUTPUT 
SELECT T1_C1,.....,T1_C300, T1_PID from T1
INNER JOIN (SELECT T2_C1,T2_C2,T2_PID FROM T2) as RESPONSE ON T1.T1_PID=RESPONSE.T2_PID

运行速度非常慢 - 现在已经运行了 5 个小时。这两个表大约有 400 万行和几百列。

我有一台 8 核、64GB 内存的 ubuntu-linux 机器,使用 top 我可以看到只有一个核心上的 mysql 进程甚至没有使用 3GB,尽管不可否认它的使用率始终为 100%。令人不安的是,并非所有核心都被使用。

我希望创建表的速度比这快得多。

我应该使用

CREATE TABLE INPUT_OUTPUT LIKE T1

通过添加 T2 中相关列的额外列来更改 INPUT_OUTPUT,然后填充它?我不确定执行此操作的语法以及它是否会导致加速。

最佳答案

T1_PID 有索引吗?如果是这样,这应该运行得很快。运行查询的 SELECT 部分的 EXPLAIN 并查看其内容。

也就是说,我不明白为什么你需要子查询。有什么问题:

CREATE TABLE INPUT_OUTPUT 
SELECT T1_C1,.....,T1_C300, T1_PID, T2_C1, T2_C2, T2_PID
FROM T1 INNER JOIN T2 ON T1.T1_PID=T2.T2_PID

如果 T1T2 具有 PID 索引,则使用后者应该有效。

关于mysql - 从内连接创建表非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12241901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com