Чтение большого XLS файла

mcfalu

Новичок
Есть файл размером ~36мб. Даже при простом открытии через Excel процесс занял порядка 25 секунд.
Нужно данные импортировать в БД.

Для небольших файлов есть отличное решение. Например: php-excel-reader. Но для больших файлов эти решения не подходят, так как содержимое файла сначала считывается в память.

Какие варианты решения могут быть данной проблемы?
Вручную сконвертировать в СSV и уже его построчно считывать...
Может есть вариант считывания "построчно" и xls?
Может для этой задачи используются другие технологии?

Гугл ничего конкретного не смог подсказать...
 

mcfalu

Новичок
выковыряйте нужный функционал из php-excel-reader
хотя операция импорта единичная,зачем её оптимизировать?
операция будет повторятся с некоторой периодичностью..
Изменились данные - их нужно обновить. Такая логика
 

tz-lom

Продвинутый новичок
mcfalu
не,я понимаю,но всё таки раз в день подождать 40 секунд это не столь затруднительно как ждать 40 секунд на каждый запрос
оптимизировать надо критичные места а не медленные
 

mcfalu

Новичок
mcfalu
не,я понимаю,но всё таки раз в день подождать 40 секунд это не столь затруднительно как ждать 40 секунд на каждый запрос
оптимизировать надо критичные места а не медленные
так 40 секунд то ландо. Но когда файл 35мб считывается 2,5 минуты. При этом нужно около 400 метров памяти. И это только на считывание.
 

Sokil.Dmytro

Новичок
у меня была база Access 200 MB, которую надо было синхронизировать с базой MySQL. Делал через конвертирование в CSV, никаких проблем не возникало. Главное, если у вас хостинг шаред или какие-то еще ограничения, расщитать вкладывание в max_execution_time, и делать поэтапное обновление с запоминанием состояние
 

mcfalu

Новичок
у меня была база Access 200 MB, которую надо было синхронизировать с базой MySQL. Делал через конвертирование в CSV, никаких проблем не возникало. Главное, если у вас хостинг шаред или какие-то еще ограничения, расщитать вкладывание в max_execution_time, и делать поэтапное обновление с запоминанием состояние
скорее всего так и нужно будет поступить. с конвертированием в csv и построчными считыванием..
 
Сверху