Мой вопрос: могу ли я использовать массив для более чем 2 миллионов записей?
Да, вы можете, 2 миллиона записей в массивах - это не предел в PHP для массивов. Предел массива зависит от памяти, доступной для PHP.
ini_set('memory_limit', '320M');
$moreThan2Million = 2000001;
$array = range(0, $moreThan2Million);
echo count($array); #$moreThan2Million
Вы писали:
Страница запланирована и запускается через 2 минуты, поэтому меня беспокоит проблема с производительностью.
И
Но мне нужно получить все, а не 100 одновременно, и отправить их на сервер для дальнейшей обработки.
Производительность для операций с массивами зависит от вычислительной мощности. С достаточно быстрым компьютером вы не должны столкнуться с какими-либо проблемами. Однако следует помнить, что PHP является интерпретируемым языком и поэтому значительно медленнее, чем скомпилированные двоичные файлы.
Если вам нужно запускать один и тот же сценарий каждые 2 минуты, но время выполнения сценария превышает две минуты, вы можете распределить выполнение сценария по нескольким компьютерам, поэтому один процесс не потребляет ресурсы ЦП и памяти другого и может завершить работу в то же время другой процесс запускается на дополнительной коробке.
Редактировать
Хороший ответ, но можете ли вы написать свое мнение о том, сколько времени потребуется сценарию для выполнения, если нет проблем с процессором сервера и оперативной памятью.
Это зависит от размера массива, объема обработки каждой записи (по отношению к общему размеру массива) и, естественно, мощности процессора и объема оперативной памяти. Все это не указано в вашем вопросе, поэтому я могу конкретно сказать, что я бы посчитал это неопределенным. Вам нужно будет проверить это самостоятельно и построить метрики для своего приложения , профилировав его .
У меня 10 ГБ ОЗУ и более чем 8 процессоров Squad.
Например, вы можете сделать приблизительную метрику для 1, 10, 100, 1000, 10000, 100000 и 1 миллиона записей, чтобы увидеть, как масштабируется ваш (неуказанный) скрипт на этом компьютере.
Я отправляю этот массив на другую страницу для дальнейшей обработки.
Метрика, а также объем данных, которые вы отправляете между компьютерами, и какая пропускная способность у вас есть для межпроцессного взаимодействия по проводной сети.