保存多种输出格式的mysql结果

时间:2013-09-22 18:51:33

标签: mysql database query-optimization

我正在运行一个复杂的mysql查询,大约需要10分钟才能完成。我需要以不同的方式操作选择集,以根据这些操作生成不同的输出文件

现在我必须多次运行相同的where子句,并根据所需的输出稍微修改整个查询。这是一些伪代码。

select * from table where SAME WHERE CLAUSE;
select modification1(field3) from table where SAME WHERE CLAUSE;
select modification3(field1) from table where SAME WHERE CLAUSE;
select modification7(field1,field7) from table where SAME WHERE CLAUSE;

有没有办法可以将查询结果保存到内存中,这样我就可以在多个输出中使用它,然后在完成后清除它?我正在寻找比多次运行相同WHERE子句更有效的东西。

1 个答案:

答案 0 :(得分:1)

您可以使用:

 CREATE TEMPORARY TABLE table2 AS (select * from table where WHERE CLAUSE);
 select modification1(field3) from table2;
 select modification3(field1) from table2;
 select modification7(field1,field7) from table2;
 DROP TEMPORARY TABLE table2;

如果您确定要将结果保存在内存中,则第一行可以是:

 CREATE TEMPORARY TABLE table2 ENGINE=MEMORY
     AS (select * from table where WHERE CLAUSE);