在MySQL中存储过程结束时删除临时表

时间:2012-08-06 20:42:47

标签: mysql temp-tables

我是否需要在存储过程结束时添加DROP TEMPORARY TABLE IF EXISTS data;,即使我在顶部有检查?是否存在性能影响?

CREATE DEFINER=`TEST`@`%` PROCEDURE `TEST`() BEGIN

    DROP TEMPORARY TABLE IF EXISTS data;

    CREATE TEMPORARY TABLE data AS 
...


END;

1 个答案:

答案 0 :(得分:13)

在MySQL中,关闭数据库连接时会自动删除临时表。如果您计划在存储过程后打开连接,则临时表将存在于磁盘上,直到该连接关闭为止。性能影响取决于许多因素,例如您在服务器上配置临时表存储的方式,表中的数据量等等。

最好在完成后立即删除临时表。然后,您可以免除对这些潜在性能影响的担忧

相关问题