我有一个非常大的 CSV 文件(150 MB)。将其导入 MySQL 的最佳方法是什么?在将其插入 MySQL 表之前,我必须在 PHP 中进行一些操作。
问问题
6584 次
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 回答