玖叶教程网

前端编程开发入门

mysql存储过程中使用临时表(mysql临时表会占用运行内存吗?)

创建临时表

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;
-- 后续可以基于临时表进行统计处理
                             

使用临时表的目的就是建立数据缓存,避免多次进行大表查询,提升性能,但是实际效果还需要具体进行评估,使用不当可能适得其反。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言