大規模なデータセットを MySQL に高速に一括インポートする

大規模なデータセットを MySQL に高速に一括インポートする

MySQL にインポートする必要があるかなり大きなデータセットがあります。これを繰り返し実行する必要があるため、できるだけ効率的に実行したいと考えています。これにはコツがありますか? 拡張 INSERT ステートメントよりも効率的な方法はありますか?

コメント内の質問に対応するために、元の形式は XML ですが、CSV 形式に変換するトランスフォーマーはすでに持っています。私は MySQL 5.1.x を使用しており、ターゲット データベースは InnoDB です。データ間には関係がありますが、制約はなく、ほとんどの場合、制約を課すほどデータはクリーンではありません。

答え1

試すmysqlインポートCSV ファイルから直接インポートできます。

答え2

私はマイスクマニュアルでは、 INSERT AFTER について考えていましたが、 LOAD DATA INFILE は「20 倍高速」で面白そうです...

答え3

オープンソースのETLツールがあります。Pentahoデータ統合これには、mysql の一括ロード オプションがあります (デザイン ビューの実験的フォルダーの下)。また、CSV 入力およびテーブル出力の手順を使用して、プラットフォームに依存しない方法でデータをすばやくロードすることもできます。ロードする前にデータに対して何らかの処理を実行する必要がある場合は、このプログラム内でそのロジックをエンコードできます。

答え4

一括で「挿入...」しても、それほど時間はかかりません。200 MB の新しい JIRA データベース エクスポートを取得し、約 30 秒で新規データベースにロードしました。

関連情報