MySQL-临时表和内存表

mysql创建临时表

create temporary tem_name(id int,name varchar(20));
  1. 临时表的存在的周期是当前登录的session有效,断开连接将会被立即删除,也可手动将其drop table
  2. 临时表使用有一些限制条件:
    (1)临时表在memory、myisam、merge或者innodb上使用,并且不支持mysql cluster簇;
    show tables; 语句不会列出临时表,在 information_schema 中也不存在临时表信息
    show create table; 可以查看临时表

(2)不能使用rename来重命名临时表。但是可以alter table rename 代替:

alter table tem_name rename tem_name_new;

(3)可以复制临时表得到一个新的临时表,如:

create temporary table tem_name_new1 select * from tem_name_new;

(4)但在同一个query语句中,相同的临时表只能出现一次。如:
可以使用: select * from temp_tb;
但不能使用: select * from temp_tb, temp_tb as t;

(5)但不同的临时表可以出现在同一个query语句中,如临时表temp_tb1, temp_tb2:

select * from temp_tb1, temp_tb2;

  1. 临时表可以手动删除:
   drop temporary table if exists temp_tb;

4.临时表主要用于对大数据量的表上作一个子集,提高查询效率。在创建临时表时声明类型为HEAP,则Mysql会在内存中创建该临时表,即内存表

   create temporary table tem_tb_test1 type='heap' 
	 select * from temp_tb;

5.临时表和内存表的ENGINE 不同,临时表默认的是Mysql指定的默认Engine,而内存表是MEMORY

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

diff_dba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值