
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 秒で新規データベースにロードしました。