MySQL Query是否正确框架?

时间:2016-10-11 19:48:46

标签: mysql ubuntu amazon-ec2

我正在尝试在AWS ec2 xlarge实例上运行以下查询:

mysql> CREATE TABLE 3 SELECT * FROM TABLE 2 WHERE ID IN (SELECT ID FROM TABLE1);

我尝试使用ec2,因为我想也许是我的笔记本电脑使查询花了很长时间,因为Table1有14000行和6列,而表2有大约100万行和11列。但是我明白了:

写入失败:管道损坏

在我的笔记本电脑上使用aws实例和DBMS超时时。

查询应该采取>比这些超时触发器?无论如何更好地说出查询?

2 个答案:

答案 0 :(得分:1)

尝试逻辑拆分查询

CREATE TABLE3 
SELECT * 
FROM TABLE2 
WHERE ID IN (SELECT ID FROM TABLE1 where id between 1 and 10000);

然后

insert into table3
SELECT * 
FROM TABLE2 
WHERE ID IN (SELECT ID FROM TABLE1 where id between 10001 and 20000);  

答案 1 :(得分:1)

MySQL在执行WHERE table1.id IN (SELECT table2.id ...)时非常糟糕。最好使用JOIN

CREATE TABLE Table3
SELECT t2.*
FROM Table2 AS t2
JOIN Table1 AS t1 ON t1.id = t2.id