ОШИБКА я получаю:
Эта страница не работает, не отправляла никаких данных.
ERR_EMPTY_RESPONSE
Я использую язык PHP для чтения файла CSV.
Мой подход PHP выглядит как для обработки данных CSV:
$csvAsArray = array_map('str_getcsv', file($tmpName));
Я уверен, что вышеупомянутый код создает проблему после слов, код не получает выполнение.
Как я могу импортировать больше, чем, по крайней мере, 1 миллион данных одновременно?
Кто-нибудь может мне помочь, какой подход я должен выбрать?
Похоже, вы пытаетесь захватить все содержимое файла за один прием. Не делай этого 🙂 PHP array_map () не масштабируется до 1000-х … или миллионов строк.
ПРЕДЛОЖЕНИЕ:
Считайте ваши данные во временный файл (как вы, кажется, делаете сейчас).
Сделать Postgresql COPY
ПРИМЕР:
COPY my_table(my_columns, ...)
FROM 'my_file.csv' DELIMITER ',' CSV HEADER;
Я бы предложил использовать лига / CSV пакет для разбора и импорта CSV. @ paulsm4 правильно, что никогда не нужно помещать весь файл в память, а затем работать с ним, лучше читать построчно. Но этот пакет в хорошем состоянии и делает все это под капотом и довольно эффективно. И это гораздо более гибкий, чем COPY
команда postgres на мой взгляд. Можно фильтровать содержимое, сопоставлять обратные вызовы с полями / строками и все это на стороне PHP.