将大文件加载到数据库中

时间:2013-02-04 12:51:34

标签: php postgresql data-migration

我有一个大约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);
}

1 个答案:

答案 0 :(得分:1)

如果您可以直接访问服务器(并且您不使用某些subversion软件),postgre有一个更好的选择,在资源方面要求更低。请记住,php是一种缓慢且耗费资源的语言

COPY my_table_name FROM '/home/myfile.csv' DELIMITERS ',' CSV