我刚刚了解了临时表,并且在我的一些大型查询中使用它们给了我一些非常好的速度提升。创建和使用临时表
我遇到的问题是,当我创建表时,它不会持续使用它的以下查询的全部长度,也不会持续到脚本结束。
我使用创建它:
$dbh->exec("CREATE TEMPORARY TABLE _temp_unique_invoice_ref ENGINE = MEMORY AS
(SELECT jobRef, invoiceRef FROM invoices_out_reference GROUP BY invoiceRef)") ;
查询后,是几百行代码,并试图利用临时表的多次在子查询,但它仅适用于第一个子查询和查询的其余部分失败,说该表不存在。
由于这个查询每隔10秒就会被许多用户运行,所以它可能会在10秒钟之前执行很多次,这个情况也会变得更加复杂。
如何在不使用TEMPORARY关键字并放置等的情况下进行此项工作?
下面的查询只是一个大的查询。准备在同一个对象上调用,这可能会导致一个新的连接?如果我将create table语法放在较大的查询的开始并使用它终止,它会起作用吗?
为什么不去创建表格(不是临时的),并且一旦你的工作完成,删除该表格? – sushil