淘先锋技术网

首页 1 2 3 4 5 6 7

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;

临时架构表适用于经常需要创建临时表并对其进行操作的查询。但要注意,由于它们存储在内存中,当数据量增大时,可能会导致内存消耗过多的问题。