|
|
|
получить отчет о вставке товаров
|
|||
|---|---|---|---|
|
#18+
такая ситуация: есть база mysql (mariadb), в ней миллионы товаров. клиенты загружают свои товары в базу. после загрузки им надо выдавать отчет - сколько успешно/неуспешно загружено товаров (и каких) например код товара уникальный - если он уже есть, еще раз вставлен не будет я вижу два алгоритма: 1) простой и медленный вставляем товары по одному - собираем ошибки при неудачной вставке. минусы: десятки тысяч товаров по одному долго загружаются 2) вставляем товары одним запросом (INSERT IGNORE INTO `my_db` ('id','title', ...) VALUES item1, item2, ... плюсы: быстрая вставка, неуникальные товары игнорируются но как получить отчет о товарах которые не добавились? делать после вставки огромный селект из базы и сверять с тем что добавляли? какой алгоритм будет надежнее и быстрее? возможно есть более простые и логичные варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2015, 15:41:34 |
|
||
|
получить отчет о вставке товаров
|
|||
|---|---|---|---|
|
#18+
Ark Bucky, а зачем это вообще? чисто для удовлетворения от вида красивых циферок? ну можно так, например: -грузите всё во временную (memory) таблицу -проводите проверки - что есть, что нет -удаляете из врем.таблицы лишнее -грузите оставшееся каждый пункт - 1 запрос ...правда, не факт, что в итоге это будет быстрее, чем 10000 мелких запросов - зависит от сервера, от данных, да от чего угодно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2015, 06:43:26 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38862840&tid=1833653]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
1463ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 1724ms |

| 0 / 0 |
