创建临时表
CREATE TEMPORARY TABLE if not exists temp_student ( b int(11) NOT NULL, cnt int(11) NOT NULL ) ENGINE=MEMORY DEFAULT CHARSET=utf8;
临时表将在您连接mysql期间存在。当本次连接断开时,mysql将自动删除表并释放所用的空间。当然你也能使用drop table主动删除表并释放空间。
DROP TABLE temp_student
清空表数据
一些临时表需要重复使用,但是需要进行空表初始化,为了避免频繁的创建和删除表操作,可以使用truncate table命令来清空表,获得更好的性能。
truncate table temp_student;
导入数据到临时表中
可以使用insert into select语句导入数据到临时表中,如下:
insert into temp_student(b,cnt) SELECT classid b,count(*) cnt from student GROUP BY classid; -- 打印出结果,查看调试 SELECT ' result:', b, cnt from temp_student; -- 后续可以基于临时表进行统计处理
使用临时表的目的就是建立数据缓存,避免多次进行大表查询,提升性能,但是实际效果还需要具体进行评估,使用不当可能适得其反。