mysql之临时表

mysql之临时表,第1张

临时表:一种特殊的表,用来存储查询的中间结果,并且会随着当前连接的结束而自动删除。mysql中有2种临时表,分别是内部临时表和外部临时表。

外部临时表关键字:TEMPORARY 。

外部临时表特征:

1、关键字TEMPORARY

2、临时表创建完成之后,只有当前可见,其他连接是看不到的,具有连接隔离性

3、临时表在当前连接结束之后,会自动删除。

临时表可以存储在内存和磁盘。

当工作在非常大的表上时 你可能偶尔需要运行很多查询获得一个大量数据的小的子集 不是对整个表运行这些查询 而是让MySQL每次找出所需的少数记录 将记录选择到一个临时表可能更快些 然后多这些表运行查询 创建临时表很容易 给正常的CREATE TABLE语句加上TEMPORARY关键字 CREATE TEMPORARY TABLE tmp_table (name VARCHAR( ) NOT NULL value INTEGER NOT NULL)临时表将在你连接MySQL期间存在 当你断开时 MySQL将自动删除表并释放所用的空间 当然你可以在仍然连接的时候删除表并释放空间 DROP TABLE tmp_table如果在你创建名为tmp_table临时表时名为tmp_table的表在数据库中已经存在 临时表将有必要屏蔽(隐藏)非临时表tmp_table 如果你声明临时表是一个HEAP表 MySQL也允许你指定在内存中创建它 CREATE TEMPORARY TABLE tmp_table (name VARCHAR( ) NOT NULL value INTEGER NOT NULL) TYPE = HEAP因为HEAP表存储在内存中 你对它运行的查询可能比磁盘上的临时表快些 然而 HEAP表与一般的表有些不同 且有自身的限制 详见MySQL参考手册 正如前面的建议 你应该测试临时表看看它们是否真的比对大量数据库运行查询快 如果数据很好地索引 临时表可能一点不快 lishixinzhi/Article/program/MySQL/201311/29492


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/8607702.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存