Я знаю, что я делал прошлой ночью

123 4
Петр Елагин
На сайте с 21.03.2007
Offline
197
3347

Пост для тех, кто немного понимает SQL и для кого слово скрипт =) ассоциируется с программированием а не со скрипом двери =)

Преамбула:

я обслуживаю один магазин по продажам нижнего белья =)

Хочу поделиться вчерашнем событием:

итак время 01-30

вчера залили нового производителя товаров(там было около 80 карточек товаров, картинок около 400 штук), но залили ее криво - появились дубли картинок, нужно убрать дубли, банальное дело!

делаем таблицу:


create table img_tmp as select max(i2w_id), i2w_image, count(*) as cnt from image2ware where wre_id in (select wre_id from ware where sts_id = 1 and fct_id = 267 and wre_is_enable and wre_is_processed and wre_is_composite) group by i2w_image
having count(*) >1;

=)

далее я по идее должен удалить из таблицы image2ware все ID дублей из таблицы img_tmp


delete from image2ware where i2w_id in (select i2w_id from img_tmp);

после этого ) мне база с радостью сказала

76000 row deleted ! ( вот тут должна быть барабанная дробь, и перед глазами вся жизнь пролетает ) )


произошло это потому, что нужно было написать запрос: create table img_tmp as select max(i2w_id), as i2w_id, ну и логично в таблице img_tmp не было из за этого колонки i2w_id а была колонка max

в моем мозгу ктото крикнул - У НАС ЕСТЬ ДАМП

и там же всплыл ответ - да есть - но он за тот месяц )

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

что делать ? - время 3-15

Делаю парсеры: google cache + yandex cache =)

пол часа на каждый =( долго блин, хотел сделать через XML, потом плюнул - сделал просто по старинке

после запроса к базе - выяснилось, что у нас около 9000 активных карточек товара =)

далее делаем обработчик данных парсинга =) ( так уже 4-00 - руководство проснется и придет в 9-00 =) у меня еще 5 часов)

гугло отработал быстро - всего за 2 часа = итого у нас есть из 9000 карточек около 7000 в наличии в кеше гугла, далее яндекс =) 2000 спарсилось за час( долго так как я не хочу заморачиваться еще сейчас с капчей) - итак у нас из 9000 карточек есть 7900 в кешах

Далее обработчик - берем данные парсинга = и делаем SQL для инсерта в базу ( время уже 7-00 =))) два часа у нас есть)

есть - запускаем запрос = еще тратим 20 минут на вставку около 25 000 инсертов( не могу сказать почему так долго - не стал разбираться )

так теперь небольшой скриптик переноса месецового дампа на те карточки товара, что я не нашел в кешах:



connect = database.connectPostgre(................)
cursor = connect.getCursor()
i2w = cursor.fetchallDynamic('image2ware')
print len(i2w)
i2w_master = self.cursor.fetchallDynamic('image2ware', sDictColumn='wre_id')
print len(i2w_master)
self.cursor.begin()
for onde_index, once in enumerate(i2w):
if onde_index % 1000 == 0:
self.debug(u"Oбработка {0}/{1}".format(onde_index, len(i2w)))
if once.wre_id not in i2w_master:
insert = {}
insert.update(once)
del insert['i2w_id']
insert['i2w_message'] = u"old-{0}".format(self.now)
self.cursor.insertDynamic('image2ware', insert)
# print insert
self.cursor.commit()

Итого еще час на вставку 40 000 ссылок

так уже 8-40 =)

Заливаем заного те фотки, ради которых все и произошло, и сразу удаляем дубликаты!

8-50 - ПИ ПИ ПИ ПИ ПИ =)

проверяем - еще 10 минут =)

Все 9-01, LogOut =)

Mission complete =)

Спать =)

Максим Kuprum
На сайте с 24.10.2008
Offline
1650
#1

Столько матов в одном посте еще не встречал 🙅

► Каталог Партнерок ( https://clck.ru/LepCB ) ◄ Криптоказино 50% со старта – моим рефам ( https://clck.ru/344XeM ) ► RU СВИПСТЕЙКИ ( https://clck.ru/36g47r) ◄ | ►RU Гемблинг и RU Беттинг( https://clck.ru/33FmPU ) ◄
dark2012
На сайте с 27.01.2010
Offline
76
#2

Мата, Макс, мата... :)

Весь серч обматерил на ночь глядя. 🤣

Автоматическое продвижение сайта (http://www.rookee.ru/Web/Register.aspx?pid=378f54c720b8e5d8dccc2dcf0c6a6550f66571) Торговля криптовалютами на автомате. (https://www.apitrade.pro/96c83688002f4798524ba3ea8d932e65.htm) Лучший сервис для мониторинга и анализа позиций сайта (http://allpositions.ru/redirect/222431)
Пришел
На сайте с 03.11.2011
Offline
141
#3

Я понял слово "преамбула"

С радостью напишу что-нибудь для ваших сайтов :) (/ru/forum/comment/16157977) Всего за 60 рублей/1000 символов :)
Arsh
На сайте с 21.03.2007
Offline
199
#4

AlienZzzz, и чо, по-прежнему не бекапишься, работая с продакшеном?

Герой! Александр Матросов!!

oxg
На сайте с 08.08.2011
Offline
218
oxg
#5

Выпью за тех ко не понял... и пил прошлой ночью _)))

Прокси IPv6 Россия (http://proxy-ipv6.ru/proxy_ipv6.html) /32 сеть, каждый IP в отдельной /48 сети Прокси IPv4 (http://proxyk.ru/proxy-russia.html) более 160 подсетей А,B,C Прокси для Инстаграм (http://proxy-ipv6.ru/instagram-proxy.html)
Alex Klo
На сайте с 15.06.2006
Offline
304
#6

localhost, denver, backup... не, не слышал... :)

AlienZzzz:
Все 9-01, LogOut =)

Mission complete =)

Спать =)

не, не, не! выпороть бы не помешало... можно без нижнего белья =)

для следующего случая...

нижнее бельё иногда ночью мешает думать... :)

10-00 Начальник: "А почему у нас в базе товары конкурентов?!" :)

Проверка и мониторинг позиций сайта ( http://www.topvisor.ru/?inv=1520 ) Продвигаю сайты http://climat-nw.ru/conditioner-installation/ http://www.aircom-spb.ru/service/montaj/
Петр Елагин
На сайте с 21.03.2007
Offline
197
#7
Arsh:
AlienZzzz, и чо, по-прежнему не бекапишься, работая с продакшеном?
Герой! Александр Матросов!!

Бекап должен быть раз в день, но как оказалось его никто не делал вообще - месяцовый был по сути мной сделан на всякий случай =)

---------- Добавлено 12.02.2016 в 22:15 ----------

Alex Klo:
localhost, denver, backup... не, не слышал... :)


не, не, не! выпороть бы не помешало... можно без нижнего белья =)
для следующего случая...

Ну создание бэкапа, не моя сторона вопроса - сервак то не мой - моя задача делать новые фишки на сайте, программить, не бэкапить

Alex Klo
На сайте с 15.06.2006
Offline
304
#8
AlienZzzz:
Ну создание бэкапа, не моя сторона вопроса - сервак то не мой - моя задача делать новые фишки на сайте, программить, не бэкапить

большая ошибка:

Начальник: "кто лазил в базу и съел её?! Лишить премии!!! и никакого нижнего белья в этом месяце!" :)

AlienZzzz:
моя задача делать новые фишки на сайте, программить, не бэкапить

т.е ещё и существующий код портить?! ;)

AlienZzzz:
но как оказалось его никто не делал вообще

один раз скрипт настроить?!

nesterdron
На сайте с 09.10.2009
Offline
521
#9
AlienZzzz:

Ну создание бэкапа, не моя сторона вопроса - сервак то не мой - моя задача делать новые фишки на сайте, программить, не бэкапить

Перед тем как кодырить, нужно соранять то как было раньше, чтобы можно было Откатить назад)

Бекап, самое То!

➨Куплю порн0 трафик - писать в ЛС<<< ➨Хостинг, VPS - Саппорт всегда Онлайн. Скидки и Тестовый период! (https://is.gd/5mCoBt) ➨о_0
atranca
На сайте с 27.02.2011
Offline
126
#10

Так топик не про первый секс?

123
123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий