私の基本的なタスクは、データの一部を1つのファイルから複数の異なるテーブルにできるだけ速くインポートすることです。
LOAD DATA
現在、テーブルごとにファイルがあり、構文を使用して各ファイルを関連するテーブルにインポートすることができます。
私たちの製品はクライアントから新しい要件を受け取りました。彼は複数のファイルを送信することに関心がなく、代わりに、複数のそのようなファイルを維持するのではなく、すべての元のレコードを含む単一のファイルを送信したいと考えています。
私はいくつかの提案を考えました:
ロード先のテーブルとインポートする必要のある前の行の数を記述したファイル内の行の各バッチの前に、クライアントに1つのrawを書き込むように要求する場合があります。例えば
Table2,500 ... Table3,400
LOAD DATA
次に、テーブルと行番号の説明を破棄して、そのような行のブロックごとに適用を試みることができます。それは実行可能ですか?各レコードに追加の属性としてテーブル名を含める必要がある場合があります。その後、各レコードを繰り返して挿入する必要がありますが、これよりもはるかに遅いと確信しています
LOAD DATA
。たとえばJavaを使用してこのファイルを前処理
LOAD DATA
し、forループでasステートメントを実行することもできます。
私が望むほとんどすべてのフォーマット変更が必要かもしれませんが、それは単一のファイルでなければならず、インポートは高速でなければなりません。(テーブルの説明とは、実際には機能の別の名前であり、この機能に関連するすべてのファイルを別のテーブル名で保存することを決定しました。これはクライアントに対して透過的です)
最善の解決策として何が聞こえますか?彼らの他の提案はありますか?