假如我现在有一个表,叫sns,它的存储引擎是InnoDB
我现在想要复制一个表,就叫sns_caller,它的表结构和sns一模一样,但是存储引擎变为MEMORY
我可以这样做:
设置一下tmp_table_size和max_heap_table_size(默认值往往不够大)
SET GLOBAL tmp_table_size = 1024 * 1024 * 1024 * 2;
SET GLOBAL max_heap_table_size = 1024 * 1024 * 1024 * 2;
为了使这两项参数在mysql重启后依然有效,在mysql配置文件中设置
[mysqld]
tmp_table_size=4G
max_heap_table_size=4G
CREATE TABLE sns_memory SELECT * FROM sns WHERE 1=2;
ALTER TABLE sns_memory ENGINE=MEMORY;
INSERT INTO sns_memory SELECT * FROM sns;
DROP TABLE sns;
ALTER TABLE sns_memory RENAME sns;
网友评论