Php 将大文件加载到数据库中

Php 将大文件加载到数据库中,php,postgresql,data-migration,Php,Postgresql,Data Migration,我有一个大约11MB的大文件。这是一个CSV文件,我需要将该文件的内容加载到Postgres数据库中 我使用PHP脚本来完成这项工作,但总是在某个时刻停止 我为PHP内存和其他东西放了很大的空间,我可以加载更多的数据,但不是所有的数据 我怎样才能解决这个问题?是否有需要清理的缓存?在PHP中管理大文件的一些秘密 提前谢谢 更新:添加一些代码 $handler = fopen($fileName, "r"); $dbHandler = pg_connect($databaseConfig); w

我有一个大约11MB的大文件。这是一个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);
}

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

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

真正的问题是,为什么要将这么大的文件加载到数据库中?解决这一问题的最佳方法是简单地将文件路径存储在数据库中,然后在文件系统上使用
fread
。检查此项我必须将数据迁移到旧系统到新系统。数据就是这种格式的。我必须在新系统中进行转换和保存。好的,为了澄清您不想简单地逐字节导入CSV文件内容,而是创建一个适合CSV的表结构,然后用CSV文件中的内容填写数据库中的行?@gui你说你有一个PHP脚本来完成这项工作吗?你是如何从CSV文件中读取数据的?你能发布源代码吗?(考虑到它会占用你所有的记忆,你可能会用一种荒谬的方式来做)。