上記の要点スニペットは、一般的なデータ読み込みステートメントを示しています。利用可能なオプションはすべて上記のコードに記載されています。

次に、.csv ファイルを単純に読み取り、その行を互換性のあるテーブルに挿入する簡単な例に焦点を当てましょう。

簡単な例:

LOAD DATA INFILE ‘data.csv’ INTO TABLE db.my_table

すべての重要なオプションを含む鳥瞰図の例:

言うまでもなく、このステートメントが機能するには、CSV ファイルが適切にフォーマットされている必要があります。

上記のステートメントを使用すると、10 万行を超える .csv が数秒でテーブルにインポートされます。

ここで、注意すべき重要な点がいくつかあります:

上記のステートメントは MySql レベルで実行されるため、ソース ファイルはインポートするためにクライアントからサーバーにコピーされます。
これにより、セキュリティ上の問題がいくつか発生します。このコードを使用している間、クライアントとサーバーの接続が安全であることを確認する必要があります。

MySql 8.0 では、LOCAL を使用する機能はデフォルトで False に設定されています。サーバーとクライアントは LOCAL を許可するように設定する必要があるため、一部の人は許可エラーが発生する可能性があります。

権限エラーの場合は、local_infile:
を有効にして権限をオーバーライドする必要があります。

SET GLOBAL local_infile = true;

注: このフラグをオーバーライドすることはセキュリティ ソリューションではなく、リスクを受け入れることを承認するものです。詳細については、このドキュメントを参照してください。

?‍?結論

MySql LOAD DATA ステートメントは、非常に短い時間でファイルを読み取るために使用されます。
このコードを任意のバックエンド API で使用して、ソース ファイルを提供できます。
ソース ファイルは任意のテキスト ファイルにすることができますが、この例では .csv を使用しています。

LOAD DATA LOCAL は、ソース ファイルを MySql 経由でサーバーにコピーするため、サーバー側でセキュリティ対策を実装する必要があります。

mysqlimport ユーティリティは内部で LOAD DATA ステートメントを使用します。

ステートメントに IGNORE 1 LINES を追加すると、CSV のヘッダーを無視できます。

\\\"How

?参照

公式ドキュメント

","image":"http://www.luping.net/uploads/20241001/172776132566fb8baddd92a.gif","datePublished":"2024-11-08T04:52:05+08:00","dateModified":"2024-11-08T04:52:05+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > CSV ファイルのデータを MySql テーブルに一括アップロードするにはどうすればよいですか? LOAD DATA を使用する非常に高速な方法です。

CSV ファイルのデータを MySql テーブルに一括アップロードするにはどうすればよいですか? LOAD DATA を使用する非常に高速な方法です。

2024 年 11 月 8 日に公開
ブラウズ:555

?導入

行を反復処理してデータベースに挿入するために、まだ「for」または「while」ループを使用していますか? .csv ファイルの読み取りと MySQL データベースへのアップロードに別のコードをまだ作成していますか?

MySQL が提供する「LOAD DATA」ステートメントを使用して、線形ロジックに「NO」と言います。行数を最小限に抑え、パフォーマンスを大幅に向上させるために、コードを変更する準備をしてください。

MySql は LOAD DATA ステートメントを提供します。これは、テキスト ファイルからデータを読み取り、非常に最小限のコードでテーブルに挿入する非常に高速な方法です。

? LOAD DATA INFILE ステートメントとは何ですか?

MySQL の公式ドキュメントによると、LOAD DATA ステートメントはファイルからデータを非常に高速に読み取るために使用され、データベースを複数回ヒットする代わりに 1 回のクエリでこのデータをテーブルに挿入できます。 「INSERT INTO」クエリを使用します。

MySQL にはステートメント -> "SELECT…INTO OUTFILE" も用意されています。これは "LOAD DATA" の動作とはまったく逆の動作を行い、データ をテーブルからファイル に読み取ります。

MySql によって提供される mysqlimport ユーティリティは、データをインポートするためにサーバー上の LOAD DATA ステートメントを内部的に呼び出します。

?使い方は?

上記の要点スニペットは、一般的なデータ読み込みステートメントを示しています。利用可能なオプションはすべて上記のコードに記載されています。

次に、.csv ファイルを単純に読み取り、その行を互換性のあるテーブルに挿入する簡単な例に焦点を当てましょう。

簡単な例:

LOAD DATA INFILE ‘data.csv’ INTO TABLE db.my_table

すべての重要なオプションを含む鳥瞰図の例:

言うまでもなく、このステートメントが機能するには、CSV ファイルが適切にフォーマットされている必要があります。

上記のステートメントを使用すると、10 万行を超える .csv が数秒でテーブルにインポートされます。

ここで、注意すべき重要な点がいくつかあります:

上記のステートメントは MySql レベルで実行されるため、ソース ファイルはインポートするためにクライアントからサーバーにコピーされます。
これにより、セキュリティ上の問題がいくつか発生します。このコードを使用している間、クライアントとサーバーの接続が安全であることを確認する必要があります。

MySql 8.0 では、LOCAL を使用する機能はデフォルトで False に設定されています。サーバーとクライアントは LOCAL を許可するように設定する必要があるため、一部の人は許可エラーが発生する可能性があります。

権限エラーの場合は、local_infile:
を有効にして権限をオーバーライドする必要があります。

SET GLOBAL local_infile = true;

注: このフラグをオーバーライドすることはセキュリティ ソリューションではなく、リスクを受け入れることを承認するものです。詳細については、このドキュメントを参照してください。

?‍?結論

MySql LOAD DATA ステートメントは、非常に短い時間でファイルを読み取るために使用されます。
このコードを任意のバックエンド API で使用して、ソース ファイルを提供できます。
ソース ファイルは任意のテキスト ファイルにすることができますが、この例では .csv を使用しています。

LOAD DATA LOCAL は、ソース ファイルを MySql 経由でサーバーにコピーするため、サーバー側でセキュリティ対策を実装する必要があります。

mysqlimport ユーティリティは内部で LOAD DATA ステートメントを使用します。

ステートメントに IGNORE 1 LINES を追加すると、CSV のヘッダーを無視できます。

How to Bulk Upload CSV file data into MySql Table? A very fast way using LOAD DATA.

?参照

公式ドキュメント

リリースステートメント この記事は次の場所に転載されています: https://dev.to/elpidaguy/how-to-bulk-upload-csv-file-data-into-mysql-table-a-very-fast-way-using-load-data- c44? 1侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3