C Sharp MysqlBulkInsert vs Muplitple Insert Query

ヴィー

新しい会社(スキーマは変更される可能性があります)では、解析されたcsvファイルから一括挿入(重複が含まれる可能性のある10k〜200k行)を受け取ることがあるテーブルがあります。これに対する最善のアプローチは何でしょうか?

現在、私は次のことを行っています。Insert Into table (Fields) Values (Values) ON DUPLICATE KEY UPDATE Set <Primary Key> = <Primary Key>特に挿入するレコードの数が増えると、時間がかかりすぎます。

私が知っている2つのオプションは

1) INSERT INTO table (Fields) VALUES (Values),(Values),(Values)....

懸念事項:

  • パラメータ化、SQLインジェクションを回避するために何千ものコマンドパラメータを宣言する必要がありますか?
  • 重複キー、重複する主キーがミックスに追加されたときにコマンドが失敗するのを回避する方法はありますか

2)使用 MySqlBulkLoader

懸念事項:

  • 列のマッピング:私が読んだものから、csvは、テーブルと同じ順序でフィールドを使用して生成する必要があります(単純なものでDESCRIBE tablename正しい順序が得られると仮定します)。会社が新しく、テーブル構造がすでに変更されているため。コードを更新し、データの整合性を損なうことを忘れたくありません。

どんな助けでも大歓迎です。

タイピスト

1つのオプションは、REPLACE構文でLOAD DATAINFILEを使用することです。REPLACE構文は、既存の行を、既存の行の主キーまたは一意のインデックスと同じ値を持つ行の入力行に置き換えます。

例:

LOAD DATA INFILE '/tmp/your_data.csv' REPLACE 
INTO TABLE your_table (column1, column2, ...)

あなたが言うように、あなたのデータベーススキーマは頻繁に変更されます。構成から列のリストを読み取ることができます。そうすれば、dbスキーマで何かが変更されたときに、コードを変更する必要がなくなります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Postgres INSERT ON CONFLICT DO NOTHING vs SELECT + INSERT query

分類Dev

DllImport C Sharp const char*

分類Dev

Exception while excecuting insert query to SQL Server from c#

分類Dev

simple insert query not working

分類Dev

Insert query is failing

分類Dev

php mysql(INSERT QUERY)

分類Dev

Manually insert resultset into query

分類Dev

mysql insert into query not working

分類Dev

Numeric overflow in insert query

分類Dev

SQLServer:How to speed up Select and Insert query in loops of statements using c#

分類Dev

hardcoded ID vs query

分類Dev

MySQL Algorithm vs Query

分類Dev

SQL insert query throws error

分類Dev

Improve INSERT INTO SELECT Query performance?

分類Dev

Insert query format comprising of date

分類Dev

Mysql INSERT query inserts zeroes

分類Dev

Django insert query results into database

分類Dev

MYSQL INSERT INTO FROM SELECT QUERY

分類Dev

Wait for query result of Bookshelf insert

分類Dev

Creating single query with subquery, essentially a insert query with select query

分類Dev

MySQL INSERT INTO table VALUES .. vs INSERT INTO table SET ..

分類Dev

HIVE - INSERT OVERWRITE vs DROP TABLE + CREATE TABLE + INSERT INTO

分類Dev

insert_iterator VS back_insert_iterator

分類Dev

insert_iterator VS back_insert_iterator

分類Dev

KDB select query and vs function

分類Dev

std :: vector :: insert vs std :: list :: operator []

分類Dev

Postgres - UNION ALL vs INSERT INTO which is better?

分類Dev

Insert element into array C

分類Dev

Mysql INSERT statement in C