萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 臨時表使用指南:建立、類型選擇與效能考量

什麼是臨時表?

臨時表僅在當前連線期間可見,連線斷開自動銷毀,釋放空間。適合在大表上反覆查詢小子集時,先將子集存入臨時表再做複雜運算,減少大表掃描。

建立語法

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
  • 資料存放在記憶體,讀寫極快。
  • 限制:不支援 BLOB/TEXT、固定行長、max_heap_table_size 限制大小、重啟丟失。

手動刪除

DROP TEMPORARY TABLE tmp_table;

名稱遮蔽規則

若同名永久表存在,臨時表會遮蔽它;同一連線內無法存取被遮蔽的永久表。

效能測試建議

  • 對比「直接查大表」vs「先寫入臨時表再查」的執行時間與 EXPLAIN 輸出。
  • 若大表已有良好索引,臨時表可能無優勢甚至更慢(額外寫入開銷)。
  • 大批量資料建議配合 INSERT ... SELECT 批次寫入臨時表。
copyright © 萬盛學電腦網 all rights reserved