臨時表適用於大表多次查詢小子集的場景。本文完整說明 CREATE TEMPORARY TABLE 語法、HEAP 記憶體引擎加速、連線級生命週期、同名表隱藏機制與效能測試建議。
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
| 特性 | 說明 |
|---|---|
| 存在範圍 | 目前連線(Session) |
| 自動清理 | 連線斷開時自動 DROP |
| 手動清理 | DROP TEMPORARY TABLE tmp_table; |
| 可見性 | 僅目前連線可見,其他連線不可見 |
| 同名衝突 | 若永久表同名,臨時表隱藏永久表,連線期間操作臨時表 |
「你應該測試臨時表看看它們是否真的比對大量資料庫執行查詢快。如果資料很好地建立索引,臨時表可能一點也不快。」