Java を使用して 1000 万行のテキスト ファイルを MySQL テーブルに入力しようとしています。ファイルには空白文字で区切られた 2 つの列がありLOAD DATA INFILE
、2 つの列を持つテーブルにデータを入力するために使用しています。最初の列には整数が含まれ、2 番目の列には varchar が含まれます。ただし、データベースに渡されるデータは 1000 万ではなく、9981770 です。テーブルの構造は次のとおりです。
st.execute("create table if not exists test
(id bigint NOT NULL, word varchar(80))
ENGINE=MYISAM PARTITION BY KEY(word) PARTITIONS 40;");
挿入を高速化するためにテーブルを分割しています。また、特定の単語の ID を取得したいので、単語列に後でインデックスを追加したいためです。ただし、これが問題を引き起こすとは思いません。LOAD DATA INFILE
コマンドは次のとおりです。
st.execute("LOAD DATA LOCAL INFILE '"+PATH+
"' INTO TABLE test FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n';");
この問題を解決する方法についてアドバイスをいただければ幸いです。