温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Temporary Table占内存吗

发布时间:2026-09-05 20:23:35 来源:亿速云 阅读:89 作者:小樊 栏目:数据库

Temporary Table(临时表)是否占内存,取决于数据库类型和具体实现方式。

下面按常见数据库分别说明:


1. MySQL

① 内存临时表(Memory / Heap)

  • 使用 MEMORY 引擎的临时表 完全占内存
  • tmp_table_size / max_heap_table_size 控制大小
  • 超过限制后会 自动转成磁盘临时表

② 磁盘临时表(默认 InnoDB / MyISAM)

  • 普通 CREATE TEMPORARY TABLE
  • 数据在 临时表空间(磁盘)
  • 但:
    • 索引、缓冲池(buffer pool)仍会 占用内存
    • 读写时页缓存也在内存中

✅ 结论:
MySQL 临时表可能占内存,也可能占磁盘,但多少都会用一点内存(尤其是 buffer pool)


2. PostgreSQL

  • 临时表数据默认在 临时表空间(磁盘)
  • 但:
    • 共享缓冲区(shared buffers)会缓存临时表页
    • 排序、hash 等也可能使用 work_mem

✅ 结论:
PostgreSQL 临时表主要占磁盘,但运行时会占内存(buffer + work_mem)


3. SQL Server

  • 本地临时表 #temp
  • 数据在 tempdb
  • 页会进入 buffer pool(内存)
  • 频繁使用会明显占用内存

✅ 结论:
SQL Server 临时表“逻辑在磁盘,物理常在内存”


4. Oracle

  • 临时表数据在 临时表空间(磁盘)
  • PGA / TEMP 缓存会占用内存

总结一句话

临时表不是“不占内存”,而是:
小数据常在内存,大数据落磁盘,但运行时几乎都会碰内存。

如果你愿意,可以告诉我:

  • 用的是哪种数据库
  • CREATE TEMPORARY TABLE 还是查询自动生成的临时表

我可以给你更精确的答案和优化建议。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI