目次
PHP スクリプトの処理
ホームページ バックエンド開発 PHPチュートリアル 大量のデータのインポートとエクスポートを実装する PHP+MySQL の概要

大量のデータのインポートとエクスポートを実装する PHP+MySQL の概要

Apr 16, 2019 pm 01:25 PM
mysql php データのインポートとエクスポート

しばらく前に、テストのために実稼働環境からテスト サーバーにデータを転送する必要がありました。特定のアカウントのデータのみをインポートする必要があるため、データを SQL ステートメントに組み立てて SQL ファイルにエクスポートし、それをテスト サーバーに転送して MySQL にインポートするスクリプトを作成することを考えました。想像力は美しいですが、その過程は苦痛です。

PHP スクリプトの処理

1 スクリプトの考え方は、特定のアカウント データをクエリし、それを組み立てて SQL テキスト データに結合することです。ここで、一部のフィールドに ' (一重引用符)、" (二重引用符)、` (左上隅から 2 番目の文字) などの不正な文字が含まれているため、クエリ値をフィルタリングする必要があることに注意してください。キーボード). これらの記号は一緒に結合されます。SQL ステートメントを作成するときに、クロージャーのもう一方の端が見つからないため値が変更され、SQL ステートメントの結合で問題が発生します。したがって、これらの文字を置き換える必要があります。 str_replace() 関数を使用してこれらのシンボルを空に設定します。

2、is_numeri 関数を使用して、値が数値型の構造体かどうかを判断します。そうである場合は、「」を追加します。 (二重引用符) ですが、is_numeri には問題があります。一部の値には文字 e が含まれており、true も返されます。

これは実際には問題です。 "" を追加しないと値を MySQL に挿入できません。

その後、値を二重引用符で囲む必要があるかどうかを判断するために is_float() 関数と is_string() 関数を同時に追加しました。

3. エクスポートされるデータの量が比較的多いため、4 つの PHP プロセスを実行するように分割し、1 つのプロセスで 10,000 のユーザー データを実行するため、時間を大幅に節約できます。ただし、複数のプロセスが同時にテキストファイルを書き込むとデータ損失が発生する可能性があるため、保存されている SQL テキストも区別する必要があることに注意してください (後で気づき、データの復元に多くの時間を費やしました)。

##4、tar -xcvf コマンドを使用して、SQL ファイル (7G ファイル) を圧縮してパッケージ化します。700 M 以上に圧縮でき、圧縮効果は依然として良好です。 PHP ビデオ チュートリアル

MySQL へのデータのインポート

1、データ量が比較的大きいため、実行するためにいくつかのプロセスも分割しました。これらの大きな SQL ファイルをインポートするには、MySQL ソース コマンドを使用しました。

    mysql>source D:/www/sql/data.sql;
ログイン後にコピー

SQL ファイルには使用データベースが含まれているため、ここには使用データベースはありません。

ソース コマンドを使用して複数の SQL ファイルをインポートします。次のコマンドを保存する新しい sou.sql ファイルを作成できます。

例:

    source c:/1.sql;
    source c:/2.sql;
ログイン後にコピー

このようにして、1 つのソース コマンドで複数のファイルをインポートできます。sql ファイル.

期間中にいくつかの問題もありました:

発生状況:

## 確認したところ、原因は次のとおりです。 1 つのテーブル内のデータの量が多いです。一般に、mysql は 1 つのテーブルに大量のデータを含む SQL を制限します。

解決策:

変更を加えます。 max_allowed_pa​​cket パケット サイズ

オプション 1、一時的な変更: コマンド set global max_allowed_pa​​cket = size; を入力します (ここでのサイズはバイト単位でのみ入力できることに注意してください。 mysql サービスを再起動すると、設定が無効になります。 )

オプション 2、my.ini ファイルを変更し、[mysqld] セクションに max_allowed_pa​​cket=size を追加します

2

. ソース コマンドは位置レコードを記録できないため、この方法では、エラー メッセージが表示されるため、後で Linux シェル メソッドに切り替えて、次のように

をインポートします。 sql.sh

  #!/bin/bash
    p="d:backup/sql.sql" //绝对路径
    User='abc'
    Password='123'
     
    mysql -u $User -p$Password -e "source $f"  2>err1.txt;//输出错误到文件中,方便后面查询     
    echo 'OK!'
ログイン後にコピー

この方法でインポートすると、いくつかのエラー プロンプトが表示されます。後でトラブルシューティングを容易にします。

mysqlビデオチュートリアル

以上が大量のデータのインポートとエクスポートを実装する PHP+MySQL の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPの未来:適応と革新 PHPの未来:適応と革新 Apr 11, 2025 am 12:01 AM

PHPの将来は、新しいテクノロジーの傾向に適応し、革新的な機能を導入することで達成されます。1)クラウドコンピューティング、コンテナ化、マイクロサービスアーキテクチャに適応し、DockerとKubernetesをサポートします。 2)パフォーマンスとデータ処理の効率を改善するために、JITコンパイラと列挙タイプを導入します。 3)パフォーマンスを継続的に最適化し、ベストプラクティスを促進します。

PHP対Python:違いを理解します PHP対Python:違いを理解します Apr 11, 2025 am 12:15 AM

PHP and Python each have their own advantages, and the choice should be based on project requirements. 1.PHPは、シンプルな構文と高い実行効率を備えたWeb開発に適しています。 2。Pythonは、簡潔な構文とリッチライブラリを備えたデータサイエンスと機械学習に適しています。

MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

phpmyadminを開く方法 phpmyadminを開く方法 Apr 10, 2025 pm 10:51 PM

次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

MySQLおよびSQL:開発者にとって不可欠なスキル MySQLおよびSQL:開発者にとって不可欠なスキル Apr 10, 2025 am 09:30 AM

MySQLとSQLは、開発者にとって不可欠なスキルです。 1.MYSQLはオープンソースのリレーショナルデータベース管理システムであり、SQLはデータベースの管理と操作に使用される標準言語です。 2.MYSQLは、効率的なデータストレージと検索機能を介して複数のストレージエンジンをサポートし、SQLは簡単なステートメントを通じて複雑なデータ操作を完了します。 3.使用の例には、条件によるフィルタリングやソートなどの基本的なクエリと高度なクエリが含まれます。 4.一般的なエラーには、SQLステートメントをチェックして説明コマンドを使用することで最適化できる構文エラーとパフォーマンスの問題が含まれます。 5.パフォーマンス最適化手法には、インデックスの使用、フルテーブルスキャンの回避、参加操作の最適化、コードの読み取り可能性の向上が含まれます。

PHP:それは死にかけていますか、それとも単に適応していますか? PHP:それは死にかけていますか、それとも単に適応していますか? Apr 11, 2025 am 12:13 AM

PHPは死にかけていませんが、常に適応して進化しています。 1)PHPは、1994年以来、新しいテクノロジーの傾向に適応するために複数のバージョンの反復を受けています。 2)現在、電子商取引、コンテンツ管理システム、その他の分野で広く使用されています。 3)PHP8は、パフォーマンスと近代化を改善するために、JITコンパイラおよびその他の機能を導入します。 4)Opcacheを使用してPSR-12標準に従って、パフォーマンスとコードの品質を最適化します。

単一のスレッドレディスの使用方法 単一のスレッドレディスの使用方法 Apr 10, 2025 pm 07:12 PM

Redisは、単一のスレッドアーキテクチャを使用して、高性能、シンプルさ、一貫性を提供します。 I/Oマルチプレックス、イベントループ、ノンブロッキングI/O、共有メモリを使用して同時性を向上させますが、並行性の制限、単一の障害、および書き込み集約型のワークロードには適していません。

phpmyAdmin接続mysql phpmyAdmin接続mysql Apr 10, 2025 pm 10:57 PM

phpmyadminを使用してmysqlに接続する方法は? phpmyadminにアクセスするためのURLは、通常、http:// localhost/phpmyadminまたはhttp:// [サーバーIPアドレス]/phpMyAdminです。 MySQLユーザー名とパスワードを入力します。接続するデータベースを選択します。 [接続]ボタンをクリックして、接続を確立します。

See all articles