gpt4 book ai didi

mysql - 使用 "CREATE TEMPORARY TABLE"创建的表是在内存中还是在磁盘上?

转载 作者:IT王子 更新时间:2023-10-28 23:29:24 26 4
gpt4 key购买 nike

MySQL 中,当您创建临时表时,例如 CREATE TEMPORARY TABLE ...,该表是在内存中还是在磁盘中创建和保存的?

我已经阅读了文档并用谷歌搜索了它,但没有找到答案。

最佳答案

这取决于您指定的引擎。默认情况下,表数据将存储在磁盘上。如果指定 MEMORY 引擎,则数据只会存储在内存中。

创建临时表时,应该可以实际找到文件系统中创建的文件。运行以下命令后:

CREATE TABLE test.table_myisam (x int) ENGINE=MyISAM;
CREATE TABLE test.table_memory (x int) ENGINE=MEMORY;
CREATE TEMPORARY TABLE test.temp_table_myisam (x int) ENGINE=MyISAM;
CREATE TEMPORARY TABLE test.temp_table_memory (x int) ENGINE=MEMORY;

然后我检查了目录:C:\ProgramData\MySQL\MySQL Server 5.5\data\test(在 Windows 上),存在的文件是:

table_innodb.frm   # Table definition.table_innodb.MYD   # MyISAM table data file.table_innodb.MYI   # MyISAM table index file.table_memory.frm   # No MYD or MYI file for the MEMORY engine.

临时表存储在 C:\Windows\Temp 中并且具有不寻常的名称,但在内部以相同的方式存储数据。

#sql9a0_7_d.frm    # This is the MyISAM temporary table.#sql9a0_7_d.MYD    # MyISAM data file for temporary table.#sql9a0_7_d.MYI    # MyISAM index file for temporary table.#sql9a0_7_c.frm    # This is the MEMORY engine file. No MYD or MYI.

关于mysql - 使用 "CREATE TEMPORARY TABLE"创建的表是在内存中还是在磁盘上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560860/

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