首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 臨時表完整指南:TEMPORARY 關鍵字、HEAP 引擎、生命週期與隱藏機制

     編輯:MySQL 綜合教學

前言

臨時表適用於大表多次查詢小子集的場景。本文完整說明 CREATE TEMPORARY TABLE 語法、HEAP 記憶體引擎加速、連線級生命週期、同名表隱藏機制與效能測試建議。

基本建立語法

CREATE TEMPORARY TABLE tmp_table (
  name VARCHAR(10) NOT NULL,
  value INT NOT NULL
);

HEAP 記憶體引擎加速版

CREATE TEMPORARY TABLE tmp_table (
  name VARCHAR(10) NOT NULL,
  value INT NOT NULL
) ENGINE=MEMORY;  -- 舊版用 TYPE=HEAP
  • 資料存於記憶體,查詢速度遠快於磁碟臨時表。
  • HEAP/MEMORY 表限制:不支援 BLOB/TEXT、僅支援定長行、Hash 索引預設。

生命週期與可見性

特性說明
存在範圍目前連線(Session)
自動清理連線斷開時自動 DROP
手動清理DROP TEMPORARY TABLE tmp_table;
可見性僅目前連線可見,其他連線不可見
同名衝突若永久表同名,臨時表隱藏永久表,連線期間操作臨時表

效能測試建議

「你應該測試臨時表看看它們是否真的比對大量資料庫執行查詢快。如果資料很好地建立索引,臨時表可能一點也不快。」

  • 優先優化索引、SQL,再考慮臨時表。
  • 適用場景:複雜多步驟 ETL、中間結果重複使用、跨資料庫彙總。

相關延伸閱讀

  • MySQL SHOW 指令用法介紹
  • MySQL 清空表實現方法
  • 七種 MySQL 表類型
  • MySQL 聯結查詢一覽
  • MySQL 隨機查詢優化實例
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved