臨時表僅在當前連線期間可見,連線斷開自動銷毀,釋放空間。適合在大表上反覆查詢小子集時,先將子集存入臨時表再做複雜運算,減少大表掃描。
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INT NOT NULL
);
CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INT NOT NULL
) ENGINE = MEMORY; -- 舊版用 TYPE=HEAP
max_heap_table_size 限制大小、重啟丟失。DROP TEMPORARY TABLE tmp_table;
若同名永久表存在,臨時表會遮蔽它;同一連線內無法存取被遮蔽的永久表。
EXPLAIN 輸出。INSERT ... SELECT 批次寫入臨時表。