我有一个大约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);
}
答案 0 :(得分:1)
如果您可以直接访问服务器(并且您不使用某些subversion软件),postgre有一个更好的选择,在资源方面要求更低。请记住,php是一种缓慢且耗费资源的语言
COPY my_table_name FROM '/home/myfile.csv' DELIMITERS ',' CSV