0

約 . の大きなファイルがあります11 Mb。これは CSV ファイルであり、そのファイルの内容を Postgres データベースにロードする必要があります。

私は PHP スクリプトを使用してこの作業を行いますが、常にすぐに停止します。

PHP メモリやその他のものに大きなサイズを設定すると、より多くのデータをロードできましたが、すべてのデータをロードすることはできませんでした。

どうすれば解決できますか?クリーニングが必要なキャッシュ メモリはありますか? PHP で大きなファイルを管理する秘訣はありますか?

前もって感謝します。

更新: いくつかのコードを追加

$handler = fopen($fileName, "r");
$dbHandler = pg_connect($databaseConfig);

while (($line = $handler->fgetcsv(";")) !== false) {
    // Algorithms to transform data

    // Adding sql sentences in a variable

    // I am using a "batch" idea that execute all sql formed after 5000 read lines
    // When I reach 5000 read lines, execute my sql
    $results = pg_query($dbHandler, $sql);
}
4

1 に答える 1

1

サーバーに直接アクセスできる場合 (および一部のサブバージョン ソフトウェアを使用していない場合)、postgre には、リソースの要求がはるかに少ない、はるかに優れたオプションがあります。PHP は遅く、リソースを消費する言語であることに注意してください。

COPY my_table_name FROM '/home/myfile.csv' DELIMITERS ',' CSV
于 2013-02-04T12:57:45.150 に答える