我当前加载文件的方式是:
load data local infile 'file_name' into table tableA
fields terminated by ',' enclosed by '"' lines terminated by '\n';
是在unix计算机中装载表的最佳方式。它是否创建了最优的表大小?我想要一张占用空间最小的桌子。
发布于 2012-06-05 07:02:55
MyISAM
如果该表为MyISAM,则应执行以下操作:
set bulk_insert_buffer_size = 1024 * 1024 * 256;
alter table tableA disable keys;
load data local infile 'file_name' into table tableA
fields terminated by ',' enclosed by '"' lines terminated by '\n';
alter table tableA enable keys;
InnoDB
如果该表为InnoDB,则应执行以下操作:
set bulk_insert_buffer_size = 1024 * 1024 * 256;
load data local infile 'file_name' into table tableA
fields terminated by ',' enclosed by '"' lines terminated by '\n';
这不仅会占用最少的空间(加载一个空表),而且还会根据在内存中以树状结构缓冲行,以便在重新加载期间更快地缓存数据。
如果您担心ibdata1爆炸,则需要将所有InnoDB表转换为使用。请使用我的InnoDB清理步骤:Howto: Clean a mysql InnoDB storage engine?
https://stackoverflow.com/questions/10889525
复制相似问题