Det beror på vilken motor du anger. Som standard lagras tabelldata på disk. Om du anger MEMORY-motorn kommer data endast att lagras i minnet.
Det ska vara möjligt att faktiskt hitta de filer som skapas i filsystemet när de temporära tabellerna skapas. Efter att ha kört följande kommandon:
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;
Jag kollade sedan i katalogen:C:\ProgramData\MySQL\MySQL Server 5.5\data\test (på Windows) och filerna som fanns var:
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.
De temporära tabellerna lagras i C:\Windows\Temp och har ovanliga namn, men internt lagras data på samma sätt.
#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.