2009-11-20 60 views
9

在存儲過程中使用什麼更好:臨時表還是內存表?存儲過程中的MySQL臨時與內存表

該表用於存儲報告的摘要數據。

開發人員應該注意哪些折衷?

CREATE TEMPORARY TABLE t (avg (double)); 

CREATE TABLE t (avg (double)) ENGINE=MEMORY; 
+0

內存一樣GLOBAL TEMPORARY在ORACLE? – zloctb 2016-02-19 08:04:52

回答

7

在這兩者中,我會使用臨時表格進行報告。

內存表包含跨用戶會話連接的數據,因此您必須每次都截斷它以確保您不會使用其他人的數據。假設你根據需要放入維護內存表所需的內容,這很好 - 從維護角度看,臨時表比較安全。

4

的臨時表將只存在於你的會話的持續時間。用Engine = Memory聲明的表將會持續存在於用戶會話/連接中,但只會存在於MySQL實例的生命週期中。所以如果MySQL重新啓動,表格就會消失。

8

爲什麼這隻限於兩種選擇?你可以這樣做:

CREATE TEMPORARY TABLE t (avg double) ENGINE=MEMORY; 

雖然我不知道如何檢查內存引擎是否真的在這裏使用,但它的工作原理。

相關問題