gpt4 book ai didi

mysql - MySQL 内存表是全局的吗?

转载 作者:行者123 更新时间:2023-11-29 05:39:07 25 4
gpt4 key购买 nike

我有一个MySQL 存储例程,我想在其中使用临时数据表来存储中间结果。为了避免必须创建一个“普通”表,我想使用一个在例程执行完成后消失的内存表。我是 MySQL 新手,但我想这是要走的路:

DROP TABLE IF EXISTS MyInMemoryTable;
CREATE TABLE MyInMemoryTable ( numberField int ) ENGINE = MEMORY;
...
DROP TABLE IF EXISTS MyInMemoryTable;

我的例程适用于单个用户,但我很担心如果多个用户同时运行例程会发生什么?

MyInMemoryTable local 是执行例程的每个用户 session 吗,因此可以同时存在该表的多个实例(无冲突)?或者 MyInMemoryTable 是所有用户的单个全局 表,从而冒着不同用户的数据在表中混淆的风险?或者,如果另一个用户正忙于运行例程,一个用户是否会冒出现数据库错误的风险?

对我来说,documentation令人困惑:它说 MEMORY 引擎将每个表与一个磁盘文件相关联,而且“MEMORY 表永远不会转换为磁盘表。”

我是否误解了 MySQL 内存表?也许有更好的方法?

最佳答案

创建一个临时表。

CREATE TEMPORARY TABLE ...;

这些表不会共享,并会在您的连接结束时被删除。

内存表中的标准可能是共享的和全局的。

关于mysql - MySQL 内存表是全局的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8179600/

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