當處理大量資料且需重複查詢特定子集時,使用暫存表可避免重複掃描大表,顯著提升查詢效能。本文說明暫存表的建立語法、生命週期、HEAP 記憶體表優缺點與使用建議。
在標準 CREATE TABLE 加入 TEMPORARY 關鍵字:
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INT NOT NULL
);
DROP TABLE tmp_table 主動釋放資源。指定儲存引擎為 HEAP,資料將儲存在記憶體中:
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INT NOT NULL
) ENGINE = HEAP; -- 或 TYPE = HEAP (舊版語法)
BLOB/TEXT 欄位。AUTO_INCREMENT(舊版本)。max_heap_table_size 系統變數。>, <, BETWEEN) 效能不如 B-Tree。暫存表不一定比直接查詢大表快,特別是當大表已有良好索引時。建議實際測試: