2

ファイルをロードしている現在の方法は次のとおりです。

   load data local infile 'file_name' into table tableA  
fields terminated by ',' enclosed by '"' lines terminated by '\n';

UNIX マシンでテーブルにロードする最適な方法です。最適なテーブルサイズを作成していますか? 最小のスペースを占めるテーブルが欲しい。

4

1 に答える 1

2

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';

これは最小のスペース(空のテーブルのロード)を占めるだけでなく、リロード中にデータをより迅速にキャッシュするために、 bulk_insert_buffer_sizeに基づいて行がメモリ内のツリー状の構造にバッファリングされます。

ibdata1の爆発が心配な場合は、すべてのInnoDBテーブルをinnodb_file_per_tableを使用するように変換する必要があります。私のInnoDBクリーンアップ手順を使用してください:方法:mysql InnoDBストレージエンジンをクリーンアップしますか?

于 2012-06-04T23:02:54.653 に答える