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

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

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

30 ответов

9 просмотров

Посмотри 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
да

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

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Господа всем привет. Для того чтобы страница индексировалась с запросом под каждый город. Это нужно делать отдельные страницы для каждого города, или есть варианты по лучше?
Владимир
8
Хотел бы спросить у знающих, правильную ли я выбрал книгу для начала изучения ассемблера Юрова В.И ? Или есть более лучшие книги для начала обучения?
Botsman
31
Да блин, на тестах всё отлично было, теперь застрял на запуске. Как только не закавычивал, уже даже догуглился до того, чтобы string.format добавить, и на выводе получил строк...
Заха́р
2
$params = [ 'formid' => 'feedbackForm', 'formTpl' => '@CODE: <form class="form-validate" data-id="ajax_form"> <fieldset class="margin-bottom-md"> ...
Pathologic
1
Карта сайта