我剛剛瞭解了臨時表,並且在我的一些大型查詢中使用它們給了我一些非常好的速度提升。創建和使用臨時表
我遇到的問題是,當我創建表時,它不會持續使用它的以下查詢的全部長度,也不會持續到腳本結束。
我使用創建它:
$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