关于临时表问题!

时间:2022-04-03 09:05:32
由于查询语句稍微有点复杂,所有使用了临时表。。。CREATE TEMPORARY TABLE tmp select * from........

但有一个问题不太明白:临时表的数据到底存在哪里?是内存中吗?是不是查询语句结束,这个临时表也就没了??

12 个解决方案

#1


没有怎么研究过,

平时我们用的
临时表不是在查询结束后就清除,而是在当前链接中断的时候清除。

#2


使用临时表的速度会快吗?

#3


临时表不会很快

#4


为什么,大家都说说理由阿!

#5


临时表的数据到底存在哪里?是内存中吗?是不是查询语句结束,这个临时表也就没了??

临时表只在当前会话中有效,速度快慢要看你的查询了。有了索引一样很快

#6


那就是说临时表不是存在内存中,只是在当前会话中!

#7


mark

#8


mark?什么意思?

#9


应该是保存在内存或虚拟内存中

--使用临时表的速度会快吗?

这个要看和什么比吧

#10


是存在内存中的,看mysql的文档就知道了。

应该是在会话查询结束后就清掉的,以前看mediawiki的代码,它里面用了一个memory类型的表来存储页面访问次数。我点完页面后立刻查询这个表,里面仍然什么数据都没有。应该不是在会话结束后清除掉的。

这种表只是起到一个缓存的用途,看mediawiki里面的代码的意思,它用这个表来存储页面访问量,当数量超过它设置的数量时再一起插到另一个表里面来做永久保存。这样做可能是为了减少大量并发访问时对数据库的压力。

#11


临时表的数据到底存在哪里?是内存中吗?
这个问题不需要考虑,因为这是mysql的内部事务。
你只需知道他缓存了查询结果就可以了

是不是查询语句结束,这个临时表也就没了??
不是。而是当前连接中断时,临时表就没了

#12


谢谢楼上的朋友们,由于分太少了,给不了大家那么多。下次多给点!谢谢!

#1


没有怎么研究过,

平时我们用的
临时表不是在查询结束后就清除,而是在当前链接中断的时候清除。

#2


使用临时表的速度会快吗?

#3


临时表不会很快

#4


为什么,大家都说说理由阿!

#5


临时表的数据到底存在哪里?是内存中吗?是不是查询语句结束,这个临时表也就没了??

临时表只在当前会话中有效,速度快慢要看你的查询了。有了索引一样很快

#6


那就是说临时表不是存在内存中,只是在当前会话中!

#7


mark

#8


mark?什么意思?

#9


应该是保存在内存或虚拟内存中

--使用临时表的速度会快吗?

这个要看和什么比吧

#10


是存在内存中的,看mysql的文档就知道了。

应该是在会话查询结束后就清掉的,以前看mediawiki的代码,它里面用了一个memory类型的表来存储页面访问次数。我点完页面后立刻查询这个表,里面仍然什么数据都没有。应该不是在会话结束后清除掉的。

这种表只是起到一个缓存的用途,看mediawiki里面的代码的意思,它用这个表来存储页面访问量,当数量超过它设置的数量时再一起插到另一个表里面来做永久保存。这样做可能是为了减少大量并发访问时对数据库的压力。

#11


临时表的数据到底存在哪里?是内存中吗?
这个问题不需要考虑,因为这是mysql的内部事务。
你只需知道他缓存了查询结果就可以了

是不是查询语句结束,这个临时表也就没了??
不是。而是当前连接中断时,临时表就没了

#12


谢谢楼上的朋友们,由于分太少了,给不了大家那么多。下次多给点!谢谢!