この記事では主にPHPで大容量のCSVファイルをデータベースに読み込む方法を紹介しますので、興味のある方は参考にしていただければ幸いです。
PHP はどのようにして大きな CSV ファイルを読み取り、データベースにインポートしますか?
数百万のデータ項目を含む CSV ファイルの場合、ファイル サイズが数百 MB に達する場合があり、単に読み込むとタイムアウトまたはフリーズする可能性があります。
CSV ファイルのデータをデータベースに正常にインポートするには、バッチ処理が非常に必要です。
次の関数は、CSV ファイルで指定されたデータの特定の行を読み取ります:
/** * csv_get_lines 读取CSV文件中的某几行数据 * @param $csvfile csv文件路径 * @param $lines 读取行数 * @param $offset 起始行数 * @return array * */ function csv_get_lines($csvfile, $lines, $offset = 0) { if(!$fp = fopen($csvfile, 'r')) { return false; } $i = $j = 0; while (false !== ($line = fgets($fp))) { if($i++ < $offset) { continue; } break; } $data = array(); while(($j++ < $lines) && !feof($fp)) { $data[] = fgetcsv($fp); } fclose($fp); return $data; }
メソッドの呼び出し:
$data = csv_get_lines('path/bigfile.csv', 10, 2000000); print_r($data);
この関数は主にのアイデア行の位置決めでは、開始行番号をスキップすることでファイル ポインターの位置決めを実現します。
データがデータベースにどのように保存されるかについては、この記事では詳しく説明しません。
上記の機能は 500M 以内のファイルでテストされていますが、それより大きなファイルではテストされていません。使用または改善を検討してください。
PHP が大きな CSV ファイルを読み取ってデータベースにインポートするこの例は、エディターによって共有されるすべての内容です。参考にしていただければ幸いです。
phpphpがmongodbをカプセル化する方法データベース
以上がPHP を使用して大きな CSV ファイルを読み取り、データベースにインポートする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。