大量のデータをデータベースにすばやくインポートするための PHP メソッド
最初の方法: insert into を使用します。コードは次のとおりです。次のように:
$params = array(‘value'=>'50′); set_time_limit(0); echo date(“H:i:s”); for($i=0;$i<2000000;$i++){ $connect_mysql->insert($params); }; echo date(“H:i:s”);
最後の表示は: 23:25:05 01:32:05、つまり 2 時間以上かかったということです!
2 番目の方法: トランザクション送信を使用します。データベースへのバッチ挿入 (10W 項目ごとに送信) に表示される最終時間は: 22:56:13 23:04:00、合計 8 分 13 秒です。コードは次のとおりです:
echo date(“H:i:s”); $connect_mysql->query(‘BEGIN'); $params = array(‘value'=>'50′); for($i=0;$i<2000000;$i++){ $connect_mysql->insert($params); if($i%100000==0){ $connect_mysql->query(‘COMMIT'); $connect_mysql->query(‘BEGIN'); } } $connect_mysql->query(‘COMMIT'); echo date(“H:i:s”);
3 番目の方法: 最適化された SQL ステートメントを使用します。
##SQL ステートメントを分割し、テーブル () 値に挿入します (),( ),(),()その後、一度にもう一度挿入します。文字列が長すぎる場合は、MYSQL を設定する必要があります。
set global max_allowed_packet = 2*1024*1024*10;
$sql= “insert into twenty_million (value) values”; for($i=0;$i<2000000;$i++){ $sql.=”('50′),”; }; $sql = substr($sql,0,strlen($sql)-1); $connect_mysql->query($sql);
概要: データの大きなバッチを挿入する場合、最初の方法は間違いなく最悪ですが、2 番目の方法は実際のアプリケーションでより広く使用されており、3 番目の方法はテスト データやその他の要件が低い場合に適しており、実際に高速です。
推奨チュートリアル:以上が大量のデータをphpに素早くインポートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。