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

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

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

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

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

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


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