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

PHPz
リリース: 2024-08-19 16:40:13
オリジナル
132 人が閲覧しました

?導入

行を反復処理してデータベースに挿入するために、まだ「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 ファイルを読み取り、その行を互換性のあるテーブルに挿入する簡単な例に焦点を当ててみましょう。

簡単な例:


リーリー

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

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

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

ここで、いくつかの重要な点に注意してください:

上記のステートメントは MySql レベルで実行されるため、ソース ファイルはインポートするためにクライアントからサーバーにコピーされます。

これにより、セキュリティ上の問題がいくつか発生します。このコードを使用している間、クライアントとサーバーの接続が安全であることを確認する必要があります。

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

許可エラーの場合は、

local_infile:を有効にして許可をオーバーライドする必要があります
リーリー

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

??結論

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.

?参照

公式ドキュメント

以上がCSV ファイルのデータを MySql テーブルに一括アップロードするにはどうすればよいですか? LOAD DATA を使用する非常に高速な方法です。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!