11

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

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

    DROP TEMPORARY TABLE IF EXISTS data;

    CREATE TEMPORARY TABLE data AS 
...


END;
4

1 回答 1

15

在 MySQL 中,关闭数据库连接时会自动删除临时表。如果您打算在存储过程之后保持连接打开,那么您的临时表将存在于磁盘上,直到该连接关闭。性能影响取决于许多因素,例如您如何在服务器上配置临时表存储、表中有多少数据等。

完成临时表后立即删除它被认为是最佳做法。然后你就不用担心这些潜在的性能影响了

于 2012-08-06T20:48:57.590 回答