我正在尝试在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超时时。
查询应该采取>比这些超时触发器?无论如何更好地说出查询?
答案 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