ホームページ >バックエンド開発 >PHPチュートリアル >非同期 - PHP バルク データ データ インポート
ここで、Excel データをデータテーブルにインポートする必要がありますが、データの量は比較的多く、一度に最大で数十 W 個のデータをインポートする必要があります。インポートされたデータは、データテーブルに直接書き込まれるわけではありません。 db を使用しますが、インターフェイスは最大 1,000 個のアイテムを処理できるため、インポートするたびにこれを作成したいと考えています。タスクをインポートし、すべてのタスクをキューに入れて、インポート タスクを順番に完了する方法と提案
ここで Excel データをデータテーブルにインポートする必要がありますが、データの量は比較的多く、一度に最大で数十 W 個のデータをインポートする必要があります。インポートされたデータは、データテーブルに直接書き込まれるわけではありません。 db を使用しますが、インターフェイスは最大 1,000 個のアイテムを処理できるため、インポートするたびにこれを作成したいと考えています。タスクをインポートし、すべてのタスクをキューに入れて、インポート タスクを順番に完了する方法と提案
あなたのアイデアはとても良いですが、残念ながら PHP はこの種のことには適していません。あなたのアイデアを実装するには Java などの言語を使用することをお勧めします。
PHP にはタスクがあり、タスクのパラメーターをデータベースに直接送信します。
Java はバックグラウンドで 100ms ごとにデータベースにアクセスしてタスクがあるかどうかを確認し、タスクがある場合は処理します。
php のデフォルトは 30 秒です。set_time_limit(99999999) を追加できます。
数十万のデータが 1 分以内にダンプされるはずです
Crontab + タスク リストはバックグラウンドで非同期タスクを実行します。これはこのシナリオに非常に適しています
mysql ロードデータ infile はデータを一時テーブルに素早くインポートします
PHP デーモンはデータをインターフェースにバッチで同期します (または crontab がスケジュールされたタスクを書き込みます)
phpをSQLに配置し、mysqlのバックグラウンドソースを直接インポートします
一度にすべてをインポートするのではなく、セクションに分けてインポートすることをお勧めします