gpt4 book ai didi

mysql - 如果我不删除临时 MEMORY 表,它会持续多长时间 (MySQL)

转载 作者:可可西里 更新时间:2023-11-01 08:05:56 25 4
gpt4 key购买 nike

<分区>

我在 MySQL 中使用递归存储过程生成一个名为 id_list 的临时表,但我必须在后续的选择查询中使用该过程的结果,所以我不能 DROP 过程中的临时表...

BEGIN;

/* generates the temporary table of ID's */
CALL fetch_inheritance_groups('abc123',0);

/* uses the results of the SPROC in the WHERE */
SELECT a.User_ID
FROM usr_relationships r
INNER JOIN usr_accts a ON a.User_ID = r.User_ID
WHERE r.Group_ID = 'abc123' OR r.Group_ID IN (SELECT * FROM id_list)
GROUP BY r.User_ID;

COMMIT;

调用过程时,第一个值是我想要的分支的顶部 ID,第二个是过程在递归期间使用的 tier。在递归循环之前,它会检查 tier = 0 是否运行:

DROP TEMPORARY TABLE IF EXISTS id_list;
CREATE TEMPORARY TABLE IF NOT EXISTS id_list (iid CHAR(32) NOT NULL) ENGINE=memory;

所以我的问题是:如果我不DROP 临时MEMORY 表在过程结束时,或在我的交易中,多长时间会那张 table 一直留在内存中吗?它是在 session 结束后自动删除,还是只要连接打开它就会保留在内存中?

**注意显而易见的答案可能是在提交语句之前删除临时表,但让我们暂时假设我不能这样做。*


可以在此处找到此问题的更详细答案:https://dba.stackexchange.com/questions/57971/how-long-will-a-temporary-memory-table-persist-if-i-dont-drop-it-mysql所以我投票结束了这个问题。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com