Sergey_K
Я, видимо, не настолько прошарен :)
phpspreadsheet файл в 23 мега тупо не может открыть. Но я не разбирался с кэшированием там вообще.
2 таблицы которые переключаются в использовании не очень удобный вариант, связанный с вомзожной потерей данных, особенно если кто-то работает с таблицей адресных указателей одновременно с импортом.
Как уже говорил, дельты мы импортируем через временные таблицы с мержем в основную средствами БД, это экономит время и ресурсы.
Касаемо Excel, в 2015 году, примерно, использовали libxl, но он модулем для php идет, однако весьма хорошо справляется с большими и темболее связанными эксель файлами.
Для более просто варианта phpExcel пока самое то.
Если файлы excel простые (один лист, куча столбцов и строк), обычно конвертировали их в csv и парсили средствами php, используя SplFileObject и LimitIterator, насколько помню на парсинг 29мб файла с 1млн строк пачками по 500 строк, пиковое потребление процесса php, как результат метода memory__get_peak_usage, составляло ~656 кб что более чем экономно для памяти.
Однако на больших файлах скорость все-таки уменьшается из-за прыжков по файлу.
spreadsheetreader использовал очень давно, наверное в году 2011, то насколько помню он использует реадер который перед парсингом файла весь файл грузит в памят используя, вроде бы file_get_contents функцию. В добавок, стоит учитывать, что сам spreadsheetreader уже старичек все-таки )