如何在PHP中逐行有效地读取和解析大的CSV文件
在项目开发中,你可能遇到这样的需求,将一个100G的CSV文件导入到公司的核心数据库中,不是所有的字段,而是进行筛选的字段,100G的csv文件大约有3000万行数据。怎么实现呢,有人说通过phpmyadmin之类的工具导入,但是他们不支持字段修改导入,怎么办呢?
在本文中,我们将向您介绍在PHP中有效读取巨大CSV文件的方法。
一、将文件拆分为较小的块
首先,当我们谈论巨大的文件时,我们并不是在谈论具有50K或70K行的文件,而是像本示例一样,谈论数百万行的CSV文件(25GB)。因此,在这种情况下,正确的方法不是直接使用文件,而是使用较小的文件。
文件越小,不仅在性能方面,而且在逻辑方面,具有最佳性能和对脚本的控制将越好。我们之前写过一篇文章,介绍了如何使用 Windows 10的工具CSV splitter将巨大的CSV数据集拆分为较小的块。您当然可以使用另一种方法来做同样的事情,但是您的想法正确吗?将文件拆分为较小的块,稍后您的脚本可以轻松对其进行处理。
二、实现读取和迭代脚本
要读取文件,我们将使用PHP的fopen函数,该内置函数用于简...
点击查看剩余70%
网友评论0