powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / получить отчет о вставке товаров
2 сообщений из 2, страница 1 из 1
получить отчет о вставке товаров
    #38862626
Ark Bucky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
такая ситуация: есть база mysql (mariadb), в ней миллионы товаров.
клиенты загружают свои товары в базу.

после загрузки им надо выдавать отчет - сколько успешно/неуспешно загружено товаров (и каких)
например код товара уникальный - если он уже есть, еще раз вставлен не будет

я вижу два алгоритма:

1) простой и медленный
вставляем товары по одному - собираем ошибки при неудачной вставке.
минусы: десятки тысяч товаров по одному долго загружаются

2) вставляем товары одним запросом (INSERT IGNORE INTO `my_db` ('id','title', ...) VALUES item1, item2, ...
плюсы: быстрая вставка, неуникальные товары игнорируются
но как получить отчет о товарах которые не добавились? делать после вставки огромный селект из базы и сверять с тем что добавляли?

какой алгоритм будет надежнее и быстрее? возможно есть более простые и логичные варианты?
...
Рейтинг: 0 / 0
получить отчет о вставке товаров
    #38862840
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ark Bucky, а зачем это вообще? чисто для удовлетворения от вида красивых циферок? ну можно так, например:
-грузите всё во временную (memory) таблицу
-проводите проверки - что есть, что нет
-удаляете из врем.таблицы лишнее
-грузите оставшееся
каждый пункт - 1 запрос
...правда, не факт, что в итоге это будет быстрее, чем 10000 мелких запросов - зависит от сервера, от данных, да от чего угодно :)
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / получить отчет о вставке товаров
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]