首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 暫存表實戰指南:加速大表複雜查詢的關鍵技巧

     編輯:MySQL 資料庫相關知識

為什麼需要暫存表?

面對百萬級大表,若需重複執行多條複雜查詢提取小量子集,每次全表掃描極其低效。解法:先將所需資料篩選進暫存表,後續查詢只操作小表,效能提升數十倍。

建立與生命週期

CREATE TEMPORARY TABLE tmp_table (
    name VARCHAR(10) NOT NULL,
    value INT NOT NULL
);
  • 僅在當前連線(Session)可見。
  • 連線斷開或執行 DROP TEMPORARY TABLE tmp_table 即自動釋放空間。
  • 若同名永久表存在,暫存表會遮蓋它(隱藏),不影響永久表。

記憶體加速:HEAP (MEMORY) 引擎

CREATE TEMPORARY TABLE tmp_table (...) ENGINE=MEMORY;
  • 資料全置於記憶體,查詢速度極快。
  • 限制:不支援 BLOB/TEXT、固定長度行、重啟資料消失、受 max_heap_table_size 限制。

效能驗證建議

並非所有情境暫存表都更快。若原表索引完善、查詢高度選擇性,直接查詢可能更優。請以 EXPLAIN 與實測時間對比決定。

典型應用模式

  1. 報表系統:先抽取當月訂單至暫存表,再跑多維度統計。
  2. ETL 中間暫存:跨庫資料清洗轉換的暫存落地。
  3. 複雜多步驟邏輯:將中間結果物化,避免重複計算。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved