我 从 MySQL 网站上阅读了何时使用 MEMORY 或 NDB Cluster的描述。
涉及瞬态、非关键数据的操作,例如会话管理或缓存。当 MySQL 服务器停止或重新启动时,MEMORY 表中的数据会丢失。
但是我创建的带有 ENGINES = MEMORY 的表在 mysql 服务器重新启动时没有被删除。
创建表MY_TEMPORARY_TABLE
(
COLUMN_1
varchar(255)默认空值,
COLUMN_2
varchar(255)默认空值,
COLUMN_3
varchar(255)默认空值)引擎=内存默认字符集=utf8;
使用创建的每个表
CREATE TABLE
都会创建一个文件,然后.frm
是其他文件(例如MyISAM 或InnoDB)。.MYD
.MYI
.ibd
当涉及创建的表时,
ENGINE=MEMORY
将仅创建.frm
文件,实际数据和索引存储将发生在 RAM 中。如果 mysqld 崩溃,数据将丢失,但
.frm
仍会保留。在你的情况下,你跑了
CREATE TABLE MY_TEMPORARY_TABLE
. 这将创建一个名为MY_TEMPORARY_TABLE.frm
.如果您使用创建表
CREATE TEMPORARY TABLE MY_TEMPORARY_TABLE
,那么表本身会在 mysqld 崩溃或关闭时消失。