У меня очень большой CSV-файл (150 МБ). Каков наилучший способ импортировать его в MySQL? Я должен сделать некоторые манипуляции на PHP, прежде чем вставлять их в таблицу MySQL.
Вы можете взглянуть на LOAD DATA INFILE в MySQL.
Возможно, вы сможете делать манипуляции, как только данные загружаются в MySQL, а не сначала считывают их в PHP. Сначала сохраните необработанные данные во временной таблице с помощью LOAD DATA INFILE, а затем преобразуйте данные в целевую таблицу, используя следующий оператор:
INSERT INTO targettable (x, y, z) SELECT foo(x), bar(y), z FROM temptable
Я бы просто открыл его с помощью 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)