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

Mik*_*ynn 11 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;
Run Code Online (Sandbox Code Playgroud)

Eko*_*tin 14

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

一旦完成,只需删除临时表即被视为最佳实践.然后,您可以节省对这些潜在性能影响的担忧

  • 如果您使用连接池,则表很可能不会自动删除表.更有理由在完成后立即明确删除它. (4认同)