170 похожих чатов

Вопрос: как импортировать xlsx файл на 20к строк в БД

за быстро около 30 секунд и с минимальным использованием памяти?
Пока варианты такие:
-Библиотека maatwebsite/excel и через chunk, чтобы экономить память
- Библиотека rap2hpoutre/fast-excel, там выделение памяти вроде на много меньше и быстрее работает

30 ответов

17 просмотров

Посмотри xlsx_write

https://github.com/mk-j/PHP_XLSXWriter

Artem-Kanarskyi Автор вопроса
Артур
https://github.com/mk-j/PHP_XLSXWriter

Так там запись в файл, а мне нужно прочитать файл и записать в БД 😞

Artem-Kanarskyi Автор вопроса
Артур
Тогда посмотри в сторону Laravel Excel

Ещё смотрю в сторону конвертировать в csv и через load data

Artem Kanarskyi
Ещё смотрю в сторону конвертировать в csv и через ...

Конвертация в csv через Php займет много памяти

конвертировать внешней приблудой типа как тут советуют https://stackoverflow.com/questions/10557360/convert-xlsx-to-csv-in-linux-with-command-line и потом сделать load data прямо в БД

Vitaly Larin
конвертировать внешней приблудой типа как тут сове...

наврядли за 30 секунд получится. даже считать за такое время нереально.

Взять в аренду 1сек супер компьютера

Я вот ваще не понимаю как отвечать на такое, типа 20к строк а в нём 1 столбец с инкрементом и он выполняется 2ч потому что сервер 🥔?

https://github.com/AsperaGmbH/xlsx-reader тут можно фиксануть вроде как память, после чего будет ФС использоваться

Maksim Y.
Я вот ваще не понимаю как отвечать на такое, типа ...

У меня на локалке и миллион строк инсертится за 20 сек или каждая строка паралельно ещё 500 апи обращений делает

Очень сложно, ну хз, создай 500 воркеров или чё надо?

Artem-Kanarskyi Автор вопроса

как вы этого достигли?

Купил несколько клубней картофеля и поливал водой

Maksim Y.
Купил несколько клубней картофеля и поливал водой

я серьезно хотел бы узнать как организовать вставку при помощи воркеров одновременно и еще учитывать время потраченно на обращение к api. доп инструменты используются или на чисто laravel?

Artem-Kanarskyi Автор вопроса
Artem Kanarskyi
Фантазией

Речь шла не про Эксель

Paul Zhabov
я серьезно хотел бы узнать как организовать вставк...

Ларавеля хватит, воркеры есть, время учитывать всего не делал, можно например только апи замерять

Artem Kanarskyi
Фантазией

у меня задача просто есть. на отдельном серваке запускать сервис который бы считал данные о порядка 60 000 цен товаров где будет только id и цена в итоге. и потом эти данные синхронизировать с другой базой данных с таблицей product_prices чтоб не по одной записи апдейтить а пачками. при этом если в таблице есть такой id товара чтоб цена просто апдейтилась а если нет такого id товара чтоб создавалась запись. вот ищу подход как это сделать. и желательно при помощи большого числа воркеров когда на входе имеем только массив id и цен. либо в редис их собрать сначала а потом как то в mysql передать.

Paul Zhabov
у меня задача просто есть. на отдельном серваке з...

60k строк это вообще ни о чем🤷‍♂ можно разбить на чанки по 5к строк и в очередь загнать, вряд ли будет дольше минуты работать

В ларе же есть upsert

Serg 🐧 Serdyuk
В ларе же есть upsert

ооо. вот как! а когда я начинал работать с ларавел такой функции еще небыло. и приходиолсь с гита выкачивать стороннюю либу которая помогала такое реализовывать

30 сек это очень много времени

Vitaly Larin
30 сек это очень много времени

ну я отталкивался из своего опыта. что на считывание данных из экселя при помощи обычных php либ требуется время. Либо память.

Paul Zhabov
ну я отталкивался из своего опыта. что на считыван...

там не php используется .. зачем конвертить файл через php? если на уровне системы это будет явно быстрее .. аналогично потом быстрее запихнуть csv через тулзу БД чем делать это через пыху ..

Vitaly Larin
да

а как забрать данные из экселя при помощи ядра линукс ?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта