7

我有一个非常大的 CSV 文件(150 MB)。将其导入 MySQL 的最佳方法是什么?在将其插入 MySQL 表之前,我必须在 PHP 中进行一些操作。

4

2 回答 2

6

您可以查看 MySQL 中的LOAD DATA INFILE

一旦将数据加载到 MySQL 中,您就可以进行操作,而不是先将其读入 PHP。首先使用 LOAD DATA INFILE 将原始数据存储在临时表中,然后使用如下语句将数据转换为目标表:

INSERT INTO targettable (x, y, z)
SELECT foo(x), bar(y), z
FROM temptable
于 2010-09-23T07:33:10.653 回答
3

我会用 fopen 打开它并使用 fgetcsv 将每一行读入一个数组。伪php如下:

mysql_connect( //connect to db);

$filehandle = fopen("/path/to/file.csv", "r");
while (($data = fgetcsv($filehandle, 1000, ",")) !== FALSE) {
    // $data is an array
    // do your parsing here and insert into table
}

fclose($filehandle)
于 2010-09-23T07:38:48.083 回答