MySQL 8引入了新的临时表引擎——“Temprorary Schema”。与基于磁盘的临时表不同,这个引擎使用内存来存储数据。这样可以大大提高查询速度。
创建临时表时,使用ENGINE=Temprorary在CREATE TABLE语句中指定使用这个引擎:
CREATE TEMPORARY TABLE my_temp_table ( id INT, name VARCHAR(50) ) ENGINE=Temporary;
与其他类型的临时表不同,临时架构表存储在专用的内存区域中,而不是在磁盘上。这意味着,当数据较小时,查询速度将比磁盘临时表更快。
与其他MySQL 8临时表一样,这些表在SESSION结束时被删除。因此,不需要手动删除这些表。
-- 使用临时表对数据进行操作 CREATE TEMPORARY TABLE tmp_table LIKE my_table; INSERT INTO tmp_table SELECT * FROM my_table WHERE id >10; DELETE FROM tmp_table WHERE name LIKE 'A%'; UPDATE tmp_table SET status = 'completed' WHERE id IN (1, 2, 3); -- 查询结果并删除临时表 SELECT * FROM tmp_table; DROP TEMPORARY TABLE tmp_table;
临时架构表适用于经常需要创建临时表并对其进行操作的查询。但要注意,由于它们存储在内存中,当数据量增大时,可能会导致内存消耗过多的问题。